2017-09-21 70 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

哦對不起,我誤解了你的問題,如果是這樣的話,據我所知你必須單獨運行查詢,因爲你需要實際的結果,然後才知道是否必須運行其他的。 –