2017-09-21 54 views
0

我需要寻找基于特定顺序3个条件的文档的有效方式。MongoDB的编写查询

即考虑我的文档具有类似的用户,到期日和部门属性。

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

请建议我我如何在MongoDB中查询与最小的DB命中一个有效的方式做到这一点。

回答

0

$或运营商蒙戈具有短路行为,这意味着它会尽快的条件之一是有效返回true,他们在自己的官方Documentation很好的例子。 基本上是:

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

如果条件1为真,那么它的文档匹配。

如果条件1为假,那么蒙戈将检查条件2,看它是否匹配。

如果条件1和条件2是假的,然后蒙戈将运行condition3等等等等...

这是否回答你的问题?

+0

但如果在我的收藏有其中两个条件1和条件2相匹配的数据,那么我的查询应该只返回满足条件1的文档。 – Geek

+1

哦对不起,我误解了你的问题,如果是这样的话,据我所知你必须单独运行查询,因为你需要实际的结果,然后才知道是否必须运行其他的。 –