我有大量的文档ID来迭代(例如5k-10k)。 $ in运算符并不限制从mongodb 2.6开始的数字。早期版本的combinatorial limit为4 mio。
那就是说,在mongodb中做这样的事情是否有意义,或者它是一种具有性能损失的反模式,我应该在应用层中手动迭代?
答案 0 :(得分:0)
这有点像反模式,但有时别无选择。
如果您可以更改架构并使该查询变得多余,那么您应该这样做。如果你做不到,那么自己动手将比让MongoDB做得慢得多。
但是,您需要考虑另一个限制。 MongoDB中的每个文档都限制为16MB,每个查询都作为文档发送,因此有足够的项目可以达到该限制并获得例外。