我试图弄清楚按 _id 字段按降序排序是否利用了系统自动创建的索引。我试图使用 explain() 来解决这个问题,但我不确定。我应该按降序在 _id 上创建一个附加索引以更快地恢复数据吗?
> db.foo.insert({ name: 'foo' });
> db.foo.insert({ name: 'bar' });
> db.foo.find();
{“_id”:ObjectId(“5142d30ca4a8b347cb678c1a”),“名称”:“foo”}
{“_id”:ObjectId(“5142d310a4a8b347cb678c1b”),“名称”:“酒吧”}
> db.foo.find().sort({ _id: -1 });
{“_id”:ObjectId(“5142d310a4a8b347cb678c1b”),“名称”:“酒吧”}
{“_id”:ObjectId(“5142d30ca4a8b347cb678c1a”),“名称”:“foo”}
> db.foo.find().sort({ _id: -1 }).explain();
{
"cursor" : "BtreeCursor _id_ reverse",
“isMultiKey”:假,
“n”:2,
“nscannedObjects”:2,
“nscanned”:2,
“nscannedObjectsAllPlans”:2,
“nscannedAllPlans”:2,
“scanAndOrder”:假,
“indexOnly”:假,
“nYields”:0,
“nChunkSkips”:0,
“毫”:0,
“索引边界”:{
“_ID” : [
[
{
“$ 最大元素”:1
},
{
“$minElement”:1
}
]
]
},
“服务器”:“本地主机:27017”
}