MongoDB には、postTime:-1 にインデックスを付けた次の単純なクエリがあります。コレクションには 100,237 のドキュメントがあります。Explain() は、クエリがインデックスによって完全にカバーされていることを示しています。
nScannedObjects が 100,237 なのはなぜですか? また、最初の 5 つの結果だけに関心があるにもかかわらず、クエリ時間は 455 ミリ秒です。
私は何か間違ったことをしていますか、それともこれがMongoDBの仕組みですか? インデックス付きクエリに時間がかかる理由を誰か説明できますか?
ありがとう:)レス
db.guestBookPost.find({ postTime : {$gte : 0}, $orderby : { "postTime" : -1}}, {_id:0, >postTime:1}).limit(5).explain()
{
"cursor" : "BtreeCursor postTime_-1",
"isMultiKey" : false,
"n" : 0,
"nscannedObjects" : 100237,
"nscanned" : 100237,
"nscannedObjectsAllPlans" : 200474,
"nscannedAllPlans" : 200474,
"scanAndOrder" : false,
"indexOnly" : true,
"nYields" : 0,
"nChunkSkips" : 0,
"millis" : 455,
"indexBounds" : {
"postTime" : [
[
1.7976931348623157e+308,
0
]
]
},
"server" : "ip-10-245-26-151:27017"
}