看个Mongodb -〉mapReduce sort的问题。
异常是这个: exception: could not create cursor over nodejs.loginHistory for query : {} sort : { times: 1 } 上代码:
// map-reduce
var map = function(){
emit(this.user.username , {userinfo : this.user, count : 1});
};
var reduce = function(key, vals){
var result = {userinfo : null, count : 0};
if(vals && vals.length > 0){
result.count = vals.length;
result.userinfo = vals[vals.length-1].userinfo;
}
return result;
};
var opts = {limit : 10 ,out : {inline:1} }; //sort : {'times': -1} ,
db.collection('loginHistory').mapReduce(map,reduce, opts, function (err,datas){
// console.log(err);
// console.log(util.inspect(datas));
res.json( {err: err, datas:datas } );
});
\n```
在var opts = {limit : 10 ,out : {inline:1} }; 这里我这个sort是这样的sort : {'times': -1} , 但加上后就报那个错。
有知道的朋友帮忙回复下。
1 回复
sort 里的索引必须是在集合上已定义过的索引,如果尚未定义 sort key 匹配的索引将会报错。