我需要根据特定顺序的3个条件搜索文档。
即考虑我的文档具有用户,截止日期和部门等属性。
我需要查看是否有任何特定用户ID的文档,如果没有,那么我需要检查今天作为截止日期的任何文档,如果不是我需要找到具有特定部门的文档。
请建议我如何以最小的数据库命中率在MongoDB查询中以有效的方式执行此操作。
答案 0 :(得分:0)
Mongo中的 $或运算符具有短路行为,这意味着只要其中一个条件有效,它就会返回true,它们在其官方{{{{{{ 3}}。 基本上:
db.mycollection.find({$or : [{condition1},{condition2},{condition3}]})
如果condition1为true,则它与您的文档匹配。
如果condition1为false,那么Mongo将检查condition2以查看它是否匹配。
如果condition1和condition2为false,那么Mongo将运行condition3,依此类推......等等...
这是否回答了你的问题?