所以我有一些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更快地处理这个问题,但我实际上并不知道这种差异是否实际上是可测量的和/或重要的。
任何输入?
答案 0 :(得分:1)
是的,$ in会更快。任何一个查询都需要扫描结果集中的每个文档,因此,如果您在$ iin查询中完成$ in查询所需的项目数量较少,请使用该项目。