在查询mongodb之前,我是否应该关心从$ in ID中过滤$ nin id?

时间:2015-01-04 17:47:37

标签: node.js mongodb benchmarking

所以我有一些node.js代码,mongodb有一些$ in和$ nin id。

“$ nin”列表实际上大于“$ in”列表。

在“我的实现”中,我通过将两个id列表传递给mongodb来实现“简单方法”:

query = { _id: { $in: in_list, $nin: not_in_list } }

然后我的同事来了,并从“$ in”列表中删除了所有“$ nin”ID,只是查询了$ in

in_list = _.difference in_list, not_in_list query = { _id: { $in: in_list } }

我的假设是,mongodb足够聪明,可以比node.js更快地处理这个问题,但我实际上并不知道这种差异是否实际上是可测量的和/或重要的。

任何输入?

1 个答案:

答案 0 :(得分:1)

是的,$ in会更快。任何一个查询都需要扫描结果集中的每个文档,因此,如果您在$ iin查询中完成$ in查询所需的项目数量较少,请使用该项目。