-1

Explain メソッドにより、次の結果が得られます

{
    "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"
}

私のコレクションには 120477 のレコードがありますが、これは私のクエリがフル コレクション スキャンを実行したということですか??

どんな助けでも大歓迎です!!!

4

1 に答える 1

6

はい、すべてのドキュメントがスキャンされたことを意味します。

  • 83057 件のドキュメントがクエリに一致しました ( n)
  • 120477文書がスキャンされました (nscannedおよびnscannedObjects)

ドキュメンテーションでは、Explain 出力のフィールドについて説明しています。

関連する部分は次のとおりです。

説明.n

n は、クエリの選択基準に一致するドキュメントの数を反映する数値です。

Explain.nscanned

データベース操作中にスキャンされたドキュメントまたはインデックス エントリの総数を指定します。n と nscanned の値をできるだけ近づける必要があります。nscanned 値は、インデックスがクエリをカバーする場合など、nscannedObjects 値よりも大きくなる場合があります。indexOnly を参照してください。

于 2013-04-13T14:47:57.180 に答える