当前位置: 首页 > 知识库问答 >
问题:

MongoDB中$nin运算符是否有最大限制?

景翰音
2023-03-14

我的示例用例是查询没有阻止用户的人的数据,可以阻止用户的人数没有限制

所以我的查询看起来像

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

所以$nin操作符中的Array项的数量可能会增长到一个潜在的大数字,那么MongoDB中的这个数组的大小有限制吗?

共有2个答案

钱卓君
2023-03-14

简而言之答案是否定的!

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

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

谭飞掣
2023-03-14

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

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

 类似资料:
  • 我有一个数据集,看起来像: 我想要一个返回状态=“np”的文档的查询,但仅在存在具有相同键的其他文档没有状态值“p”的情况下。因此,从上述数据集返回的文档将是 key=“def”,因为 “abc” 的值为 “np”,但 “abc” 也有一个值为 “p” 的文档。对于key=“ghi”也是如此。我想出了一些接近的东西,但我认为$nin运算符不支持 q 不同的查询。 如果我要硬编码$nin数组中的值,

  • 问题内容: Javascript中是否存在空合并运算符? 例如,在C#中,我可以这样做: 我可以为Javascript找到的最佳近似是使用条件运算符: 这有点怪异恕我直言。我可以做得更好吗? 问题答案: 更新资料 JavaScript现在支持无效的合并运算符(??)。当其左侧操作数为或时,它返回其右侧操作数,否则返回其左侧操作数。 使用前请检查兼容性。 与C#null合并运算符()等效的JavaS

  • 问题内容: 我需要从给定的字符串中删除所有字符,除了剩下的几个字符。如何用regexp做到这一点? 简单测试:不应删除character [1,a,],而应从字符串“ asdf123 *”中删除所有其他字符。 问题答案: 集合中有^。 您应该能够执行以下操作: 完整样本:

  • 我们知道,有一个最大可重入限制:;块也有可重入限制吗? 更新:我发现很难为同步可重入编写测试代码: 有人能帮我写一些同步可重入极限测试的代码吗?

  • 当将MongoDB的$in子句与Aggregate一起使用时,That在参数数量上有任何最大限制吗? 例如 在id数组中,我可以传递多少id? 目前,我没有遇到任何问题的ids长度达到50,000...但是为了安全起见,我想知道最大限度。 我试着在Mongo doc上搜索,但是什么也没找到。 先谢谢你。

  • 期望:emitWhenSomeSourceEmits$的排放应该推迟到somesourceemits$发出新的值。 如果我不使用BehaviorSubject,那么如果someSource$在emitWhenSomeSourceEmits$之前发出,则后者的发出会错误地延迟到下一次发出。 如果我只使用行为主题,emitWhen某物源发射的第一次发射将与某物源定时。但是emitWhen某物源发射的第