看个Mongodb -〉mapReduce sort的问题。
发布于 9个月前 作者 luyanfeng 596 次浏览

异常是这个: 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 匹配的索引将会报错。

回到顶部