我的意思是,例如,當有兩個條件:如果第一個條件爲真會避免檢查第二個?
doc = collection.find_one(
{'$or': [
{
'k': kind,
'i': int(pk)
},
{
'children.k': kind,
'children.i': int(pk)
}
]
}, { '_id': False})
我想在匹配第一個條件時停止進一步搜索,所以它不會在較低層次搜索兒童。
是否在$OR
閉合或更確切地說,mongodb知道層次結構,它影響搜索的順序是findOne
?
這隻適用於收集掃描案例。正如@sammaye在他的回答中所說的,如果一個索引可以用於兩個子句,那麼兩個'$或'查詢分別執行併合並它們的結果。在這種情況下,條款順序無關緊要。 – JohnnyHK 2014-08-28 12:28:07