2016-06-07 110 views
1

的最佳優化在MondoDB中,如果您需要查詢嵌入式文檔,如何使用索引在嵌入式文檔中更好地優化集合?MongoDB在嵌入式文檔中使用索引

例如,在以下格式的集合:

{ 
    name: 「Andy」, 
    address: { 
     city: 「London」, 
     street: 「Sunny St.」 
    } 
} 

如果我們需要通過查詢:

db.collection.find({$and: [ {"address.city ": 「London」}, {"address」: 「Sunny St."} ] }) 

哪個索引的類型會更好:

1. db.collection.createIndex({"address":1}) 

2. db.collection.createIndex({"address.city ":1}) 
    db.collection.createIndex({"address.street":1}) 

3. db.collection.createIndex({"address.city ":1, "address.street":1}) 

謝謝

回答

1

對於給定的查詢建議數3

db.collection.createIndex({ 「address.city」:1, 「address.street」:1})由於有邏輯

將做的工作關係城市=>街道

如果您需要更精確地輸出mongo如何使用索引並執行您自己的測試,請使用query.explain(「executionStats」)查看索引使用情況。

more here

+0

謝謝profesor。我原以爲第一種選擇也會達到同樣的效果。我會用「executionStats」做一些測試。感謝您的鏈接 – Selrac