MongoDB $ in运算符数组最大长度

时间:2016-08-29 15:12:34

标签: mongodb meteor

在Meteor中,我使用MongoDB来存储一组对象。插入了大约500,000个文档。

我使用Objets.find({ "_id": { "$in": objIds } });其中objIds是_id的数组。当我的数组长度为1000但当我尝试使用13145 _ids时,应用程序停止响应。

显然,_id字段上已有索引,而且这种搜索可能永远不会发生,但我不确定这是否是正常行为。 $ in运算符是否有最大长度?在文档中找不到。

这是我在Meteor中的发布:

Meteor.publish('objetsByIds', function objetsByIdsPublication(objIds) {
      return Objets.find({ "_id": { "$in": objIds } });
  })

1 个答案:

答案 0 :(得分:1)

对Meteor不太了解,但是,MongoDB在检索大量数据时使用游标,并且根据驱动程序实现Meteor的处理方式。

虽然您可以查看游标here,但我想到的其他想法是划分查询。因此,如果你知道1000的效果很好,那就做一个循环,使用mod,你可以使结果长达1000个文档。