찾다

 >  Q&A  >  본문

mongodb 3.0 中怎么显示cursor和nscanned?

如题
这是我用explain显示出来的数据

> db.users.explain("allPlansExecution").find({username:'user101'})
{
    "queryPlanner" : {
        "plannerVersion" : 1,
        "namespace" : "test.users",
        "indexFilterSet" : false,
        "parsedQuery" : {
            "username" : {
                "$eq" : "user101"
            }
        },
        "winningPlan" : {
            "stage" : "FETCH",
            "inputStage" : {
                "stage" : "IXSCAN",
                "keyPattern" : {
                    "username" : 1
                },
                "indexName" : "username_1",
                "isMultiKey" : false,
                "direction" : "forward",
                "indexBounds" : {
                    "username" : [
                        "[\"user101\", \"user101\"]"
                    ]
                }
            }
        },
        "rejectedPlans" : [ ]
    },
    "executionStats" : {
        "executionSuccess" : true,
        "nReturned" : 1,
        "executionTimeMillis" : 0,
        "totalKeysExamined" : 1,
        "totalDocsExamined" : 1,
        "executionStages" : {
            "stage" : "FETCH",
            "nReturned" : 1,
            "executionTimeMillisEstimate" : 0,
            "works" : 2,
            "advanced" : 1,
            "needTime" : 0,
            "needFetch" : 0,
            "saveState" : 0,
            "restoreState" : 0,
            "isEOF" : 1,
            "invalidates" : 0,
            "docsExamined" : 1,
            "alreadyHasObj" : 0,
            "inputStage" : {
                "stage" : "IXSCAN",
                "nReturned" : 1,
                "executionTimeMillisEstimate" : 0,
                "works" : 2,
                "advanced" : 1,
                "needTime" : 0,
                "needFetch" : 0,
                "saveState" : 0,
                "restoreState" : 0,
                "isEOF" : 1,
                "invalidates" : 0,
                "keyPattern" : {
                    "username" : 1
                },
                "indexName" : "username_1",
                "isMultiKey" : false,
                "direction" : "forward",
                "indexBounds" : {
                    "username" : [
                        "[\"user101\", \"user101\"]"
                    ]
                },
                "keysExamined" : 1,
                "dupsTested" : 0,
                "dupsDropped" : 0,
                "seenInvalidated" : 0,
                "matchTested" : 0
            }
        },
        "allPlansExecution" : [ ]
    },
    "serverInfo" : {
        "host" : "mongo2",
        "port" : 27017,
        "version" : "3.0.0",
        "gitVersion" : "a841fd6394365954886924a35076691b4d149168"
    },
    "ok" : 1
}
漂亮男人漂亮男人2761일 전657

모든 응답(2)나는 대답할 것이다

  • 習慣沉默

    習慣沉默2017-04-25 09:04:45

    문서만 확인했는데, 결과를 꼼꼼히 살펴보지 못한 제 자신을 자책합니다. .

    queryPlanner.winningPlan.inputStage.stage열 표시 쿼리 전략
    - IXSCAN은 Index를 사용하여 쿼리하는 것을 의미합니다.
    - COLLSCAN은 열 쿼리를 사용한다는 의미, 즉 과거를 하나씩 비교한다는 의미입니다.

    cursor의 인덱스 이름이 queryPlanner.winningPlan.inputStage.indexName

    으로 이동되었습니다.

    3.0에서는 executionStats.totalDocsExamined을 대신하여 확인해야 할 전체 문서 수를 표시하는 데 nscanned를 사용합니다.

    회신하다
    0
  • 習慣沉默

    習慣沉默2017-04-25 09:04:45

    으아아아

    회신하다
    0
  • 취소회신하다