0
所以我有這個指數指數沒有被使用
db.contact.ensureIndex(
{
'first_name':1,
'last_name':1,
'company_name':1,
'title':1,
'email':1,
'phone_number':1,
'state':1,
'list_id':1
});
如果我運行一個$or
此查詢不使用索引
db.contact.find(
{
$or: [
{'first_name':/sales/i},
{'last_name':/sales/i},
{'company_name':/sales/i},
{'title':/sales/i},
{'email':/sales/i},
{'phone_number':/sales/i},
{'state':/sales/i}
]
}).explain();
輸出:
{
"cursor" : "BasicCursor", //Btree Index not being used !?
"isMultiKey" : false,
"n" : 0,
"nscannedObjects" : 0,
"nscanned" : 0,
"nscannedObjectsAllPlans" : 0,
"nscannedAllPlans" : 0,
"scanAndOrder" : false,
"indexOnly" : false,
"nYields" : 0,
"nChunkSkips" : 0,
"millis" : 0,
"server" : "",
"filterSet" : false
}
爲每個項目創建索引似乎是解決方案,如下所示:http://stackoverflow.com/a/6875645/2805783 – donquixote 2015-02-08 01:26:19