我正在使用Meteor 1.5和MongoDB shell版本:3.2.12。 我的数据库中有大约42000个用户。 我订阅了向管理员显示这些用户及其信息的订阅。 我每页显示20条记录/用户。
当我访问第1964页时,我在服务器控制台中收到此异常:
sub allUsers的异常id SzTYWKd8mK77ybWw2 MongoError:查找命令期间执行程序错误:OperationFailed:排序操作使用的RAM超过最大33554432字节。添加索引,或指定较小的限制。
以下是订阅的代码:
Meteor.publishComposite('allUsers', function(options, queryParams) {
try{
if(serverHelperClass.isAdmin(this.userId)){
return {
find: function() {
return Meteor.users.find(
{},
{
fields: {_id: 1, createdAt: 1, emails: 1, lastUpdated: 1, 'profile.firstName': 1, 'profile.lastName': 1 },
limit: 20, skip: 39260, sort: { 'lastUpdated.timeStamp': -1 }
});
}
};
}
return {find:function(){return Meteor.users.find({_id:''});}};
}
catch (e) {serverHelperClass.throwLog('subscription: allUsersPaginated: '+e.stack, e);}
});
此外,由于排序,我觉得这种情况正在发生。我是否需要创建一些索引进行排序?