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

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

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

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

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

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

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

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

任何input?

是的,$ in会更快。 任一查询都需要扫描结果集中的每个文档,因此如果您需要执行$ in查询所需的项目数less于$ nin查询,请使用该查询。