2

customers 以下に示すような名前の単純なコレクションがあります

 db.customers.find().pretty()

{
        "_id" : ObjectId("524eb09ca71b72672e65ebb6"),
        "name" : "kiran",
        "occupation" : "SelfEmployeed",
        "country" : "IND"
}
{
        "_id" : ObjectId("524eb0a4a71b72672e65ebb7"),
        "name" : "Mark",
        "occupation" : "Architect",
        "country" : "US"
}
{
        "_id" : ObjectId("524eb0aba71b72672e65ebb8"),
        "name" : "beast",
        "occupation" : "housewife",
        "country" : "UK"
}
{
        "_id" : ObjectId("524eb0b2a71b72672e65ebb9"),
        "name" : "Philip",
        "occupation" : "Engineer",
        "country" : "SWE"
}

以下に示すように、名前と国フィールドにインデックスを作成しました

 db.customers.ensureIndex({name : 1}, {"unique" : false})



db.customers.ensureIndex({country : 1}, {"unique" : false})

インデックスが作成されました

 db.customers.getIndexKeys()

[ { "_id" : 1 }, { "名前" : 1 }, { "国" : 1 } ]

これは私のクエリの説明の結果でした

db.customers.find({name : "Mark"}).explain()

{
        "cursor" : "BtreeCursor name_1",
        "isMultiKey" : false,
        "n" : 1,
        "nscannedObjects" : 1,
        "nscanned" : 1,
        "nscannedObjectsAllPlans" : 1,
        "nscannedAllPlans" : 1,
        "scanAndOrder" : false,
        "indexOnly" : false,
        "nYields" : 0,
        "nChunkSkips" : 0,
        "millis" : 0,
        "indexBounds" : {
                "name" : [
                        [
                                "Mark",
                                "Mark"
                        ]
                ]
        },
        "server" : "************"
}

なぜ indexonly 属性の値が false なのですか??

私はそれが原因であると説明する同様の質問を見ました

インデックスが作成されていないクエリを介して他のフィールドを取得するため、インデックスのみを使用しないため、indexonly は false です。

ここで他のフィールドの意味を教えてください??

4

1 に答える 1