MongoDB编写查询的有效方法

时间:2017-09-21 17:05:38

标签: mongodb mongoose

我需要根据特定顺序的3个条件搜索文档。

即考虑我的文档具有用户,截止日期和部门等属性。

我需要查看是否有任何特定用户ID的文档,如果没有,那么我需要检查今天作为截止日期的任何文档,如果不是我需要找到具有特定部门的文档。

请建议我如何以最小的数据库命中率在MongoDB查询中以有效的方式执行此操作。

1 个答案:

答案 0 :(得分:0)

Mongo中的 $或运算符具有短路行为,这意味着只要其中一个条件有效,它就会返回true,它们在其官方{{{{{{ 3}}。 基本上:

db.mycollection.find({$or : [{condition1},{condition2},{condition3}]})

如果condition1为true,则它与您的文档匹配。

如果condition1为false,那么Mongo将检查condition2以查看它是否匹配。

如果condition1和condition2为false,那么Mongo将运行condition3,依此类推......等等...

这是否回答了你的问题?