【问题标题】:Is there a max limit to the $nin operator in MongoDB?MongoDB 中的 $nin 运算符是否有最大限制?
【发布时间】:2021-05-12 19:02:55
【问题描述】:

我的示例用例是查询有关没有阻止用户的人的数据 并且可以屏蔽用户的人数没有限制

所以我的查询看起来像

db.collection().find( { followedPersonId: { $nin: [ blockerId1, blockerId2, blockerId3.....] } } )

所以 $nin 运算符中的 Array 项的数量可以增长到一个潜在的大数字,那么 MongoDB 中这个数组的大小是否有限制?

【问题讨论】:

标签: mongodb


【解决方案1】:

命令大小限制当前设置为 48 MB。如果您的查询大于该值,则驱动程序在尝试对其进行序列化时应该会失败,并且如果要求对其进行解析,则服务器应该会失败。

由于您的查询在技术上是一个查询文档,我想较低的 16 MB BSON 文档大小限制也适用于它。 48 MB 的限制适用于指定查询文档和更新文档的查找和修改查询。

【讨论】:

    【解决方案2】:

    简短的回答是否定的!

    当您尝试这样做时,查询会变得很大。而且性能会更低。

    ID 会以千万计吗? 如果是,那么我建议不要使用这种方法。

    【讨论】:

      猜你喜欢
      • 2017-05-21
      • 1970-01-01
      • 1970-01-01
      • 2015-08-23
      • 2011-11-28
      • 2016-06-06
      • 2016-05-18
      • 1970-01-01
      • 2011-09-07
      相关资源
      最近更新 更多