看个Mongodb -〉mapReduce sort的问题。
发布于 10 年前 作者 luyanfeng 6625 次浏览 最后一次编辑是 8 年前

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

回到顶部