MongoError:OperationFailed:排序操作使用的RAM超过最大33554432字节

时间:2017-07-05 11:15:01

标签: mongodb sorting meteor

我正在使用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);}
});

此外,由于排序,我觉得这种情况正在发生。我是否需要创建一些索引进行排序?

0 个答案:

没有答案