MongoDB最大值" $ in"运算符匹配值

时间:2015-09-04 02:58:30

标签: mongodb

有没有人知道MongoDB是否对使用" $ in"指定的匹配数量有任何限制。操作

例如,

db.inventory.find( { _id: { "$in": [ "abc", "def", "ghi", "jkl", "mno", "pqr", "stu", "vwx", "yz" ] } } )

" $ in" match数组有9个字符串。

我可以使用" $ in"有20,30,一百甚至一千个数组项目吗?运算符说明符查询?很明显,性能可以通过执行大量查询来实现,但只是想知道如果" $ in"匹配是一个巨大的阵列。

感谢。

Ps-我的问题是关于查询本身,而不是返回多少结果。

1 个答案:

答案 0 :(得分:2)

唯一的“限制”是总文档的BSON limit which is 16MB,它是组合的查询内容和通过线路发送到服务器的命令指令。所以它不仅仅是$in参数的大小,而且还是它们“类型”的一个因素以及其他查询组件和命令组件本身。后一部分相对较小。

任何其他限制都将是您的母语实现处理“数组”的方式,这可能会对元素数量施加限制。

当然,管理“长列表”以便在任何代码中进行匹配通常都很麻烦而且性能不佳,所以你应该意识到,通过“限制”你的{可能会有一个更好的性能来实现{1}}到列表的较小块而不是一次性。

在可能的情况下,作为“经验法则”,请尽量保留每个请求约300个条目。你可能会抛出更多,但它也是一些与多个SQL数据库解决方案的参数限制相结合的“参数”。因此,这样的“限制”通常适用于标准。