2012-06-15 91 views
0

我想了解$ all操作符如何使用多鍵索引。

Mongo documentation說,在陣列上的索引:

結果在數據庫索引數組的每個元素

所以,如果我有嵌入式陣列兩個文件[ABCD]和[BC ]我相信,最終得到的指數會是這樣的:

a 
b 
b 
c 
c 
d 

現在假設我發出$所有[BC]查詢,我希望兩相匹配的文件。但是,上述索引如何用於查找這些文檔?

回答

2

像$ all [b,c]這樣的查詢會發生什麼,該索引用於查找包含「b」的文檔,然後檢查所有這些文檔以查看它們是否也包含「c」。該索引有一定的幫助,因爲它縮小了需要檢查的文檔數量。但在某些情況下,查詢仍然需要一段時間。

2

我可以確認@matulef所說的內容,因此可以建議您訂購參數,以便最低頻率的值首先在$ all數組中。這最大限度地減少了Mongo需要掃描的對象數量,以檢查其他$ all值是否也存在。

相關問題