-1

我有一个查询

db.messages.find({'headers.Date':{'$gt': new Date(2001,3,1)}},{'headers.From':1, _id:0}).sort({'headers.From':1})

我已经设置headers.From为索引。现在查询的哪一部分将使用这个索引?即查找查询的一部分或排序查询的一部分?

解释输出是

{
    "cursor" : "BtreeCursor headers.From_1",
    "isMultiKey" : false,
    "n" : 83057,
    "nscannedObjects" : 120477,
    "nscanned" : 120477,
    "nscannedObjectsAllPlans" : 120581,
    "nscannedAllPlans" : 120581,
    "scanAndOrder" : false,
    "indexOnly" : false,
    "nYields" : 0,
    "nChunkSkips" : 0,
    "millis" : 250,
    "indexBounds" : {
        "headers.From" : [
            [
                {
                    "$minElement" : 1
                },
                {
                    "$maxElement" : 1
                }
            ]
        ]
    },
    "server" : "Andrews-iMac.local:27017"
}

任何帮助表示赞赏!

4

1 回答 1

1

索引用于排序部分,而不是用于查询,因为您的查询不使用 headers.From 字段,而您的排序则使用。

于 2013-04-13T17:32:51.637 回答