2016-02-20 94 views
0

2件到我的帖子在這裏:Mongodb - 創建索引 - 是否需要,我搜索好嗎?

1)確認: 我使用創建的索引:標準:

db.collection.createIndex({ order: 1, code: 1 })

從這裏

所以有人可以證實這是最好的事情做(創建索引)如果我然後想運行一個查詢如。 (另外,如果我不創建索引什麼區別它在技術上做,它只是在影響性能)

db.collection.find({order : {$in: ['food', 'drink']}}) 

2)語法 與查詢我想用一個or但其顯示的錯誤,會有人好心檢查我的語法正確位置:

db.collection.find($or[{order : {$in: ['food', 'drink']}}, {code : {$in: ['12', '14']}}] ) 

非常感謝

回答

1

$or操作形式如下

{ $or: [ { <expression1> }, { <expression2> }, ... , { <expressionN> } ] } 

所以

db.collection.find({$or: [{order : {$in: ['food', 'drink']}}, 
          {code : {$in: ['12', '14']}}]} ) 
1

由於zangw已經回答了第二個問題,我只是回答問題1

db.collection.createIndex({ order: 1, code: 1 })將創建一個名爲 order_1_code_1指數,這樣可以加快你的這兩個查詢。如果查詢中的字段可以形成索引名稱的前綴,則MongoDB可以使用索引。所以如果你只通過code查詢,索引order_1_code_1是無用的。

相關問題