我有我的想法是蒙戈一個非常簡單的,簡單的查詢,並創建了索引:爲什麼我的索引只能在Mongo Query中使用?
{ "Ended" : 1, "EndDate" -1 }
然而,當我在其上運行一個簡單的查詢,似乎認識到指數,但它的仍然掃描許多對象來檢索數據。這是我的查詢和解釋結果:
PRIMARY> db.listing.find({ "Ended" : { "$ne" : true }, "EndDate" : { "$lte" : ISODate("2011-11-18T00:47:40.638Z") } }).explain();
{
"cursor" : "BtreeCursor Ended_1_EndDate_-1 multi",
"nscanned" : 24508585,
"nscannedObjects" : 24508583,
"n" : 24508583,
"millis" : 108323,
"nYields" : 0,
"nChunkSkips" : 0,
"isMultiKey" : false,
"indexOnly" : false,
"indexBounds" : {
"Ended" : [
[
{
"$minElement" : 1
},
true
],
[
true,
{
"$maxElement" : 1
}
]
],
"EndDate" : [
[
ISODate("2011-11-18T00:47:40.638Z"),
true
]
]
}
}
任何明顯的想法我做錯了什麼?謝謝!
如果你更換' 「結束」 發生了:{ 「$ NE」:真正}'和' 「結束」:FALSE'? (或不在你的模式中工作?) – Rich