кодесурса
«MongoDB

MongoDB: метод db.collection.explain ()

script1adsense2code
script1adsense3code

db.collection.explain

Метод db.collection.explain () используется для возврата информации о выполнении запроса различными методами, такими как aggregate (); кол-(); находить(); группа (); Удалить(); и обновить ().

Синтаксис:

 db.collection.explain ()

Параметры:

название Описание Необходимые /
Необязательный
Тип
многословие Определяет режим многословия для вывода объяснения. Режим влияет на поведение объяснения () и определяет объем возвращаемой информации. Возможные режимы: «queryPlanner», «executeStats» и «allPlansExecution». Необязательный строка

Образец документа в коллекции ресторанов:


{
  "address": {
     "building": "1007",
     "coord": [ -73.856077, 40.848447 ],
     "street": "Morris Park Ave",
     "zipcode": "10462"
  },
  "borough": "Bronx",
  "cuisine": "Bakery",
  "grades": [
     { "date": { "$date": 1393804800000 }, "grade": "A", "score": 2 },
     { "date": { "$date": 1378857600000 }, "grade": "A", "score": 6 },
     { "date": { "$date": 1358985600000 }, "grade": "A", "score": 10 },
     { "date": { "$date": 1322006400000 }, "grade": "A", "score": 9 },
     { "date": { "$date": 1299715200000 }, "grade": "B", "score": 14 }
  ],
  "name": "Morris Park Bake Shop",
  "restaurant_id": "30075445"
}
.....

Пример: MongoDB: метод db.collection.explain () с использованием режима queryPlanner

В следующем примере выполняется режим многословия queryPlanner, который возвращает информацию о планировании запроса для указанной операции count ():


db.restaurants.explain().find( { "cuisine": "Italian", "address.zipcode": "10075" } ).count();

Вот вывод

 > db.restaurants.explain (). find ({"kitchen": "Italian", "address.zipcode": "10075"}) .count ();
{
        "queryPlanner": {
                "plannerVersion": 1,
                "namespace": "test.restaurants",
                "indexFilterSet": ложь,
                "parsedQuery": {
                        "$ and": [
                                {
                                        "address.zipcode": {
                                                "$ eq": "10075"
                                        }
                                },
                                {
                                        "кухня": {
                                                "$ eq": "итальянский"
                                        }
                                }
                        ]
                },
                "WinningPlan": {
                        "stage": "COUNT",
                        "inputStage": {
                                "stage": "COLLSCAN",
                                "фильтр": {
                                        "$ and": [
                                                {
                                                        "address.zipcode": {
                                                                "$ eq": "10075"
                                                        }
                                                },
                                                {
                                                        "кухня": {
                                                                "$ eq": "итальянский"
                                                        }
                                                }
                                        ]
                                },
                                «направление»: «вперед»
                        }
                },
                "rejectedPlans": []
        },
        "serverInfo": {
                "хост": "сервер",
                «порт»: 27017,
                «версия»: «3.0.7»,
                "gitVersion": "6ce7cbe8c6b899552dadd907604559806aa2e9bd"
        },
        "хорошо": 1
}

Пример: MongoDB: метод db.collection.explain () с использованием executeStatsMode

В следующем примере db.collection.explain () запускается в режиме многословия executeStats, чтобы вернуть информацию о планировании и выполнении запроса для указанной операции find ():


db.restaurants.explain("executionStats").find(
   { "cuisine": 1, "borough": "Brooklyn"} 
);

Вот вывод

 > db.restaurants.explain ("executeStats"). find (
   {"кухня": 1, "город": "Бруклин"} 
);
{
        "queryPlanner": {
                "plannerVersion": 1,
                "namespace": "test.restaurants",
                "indexFilterSet": ложь,
                "parsedQuery": {
                        "$ and": [
                                {
                                        "Город": {
                                                "$ eq": "Бруклин"
                                        }
                                },
                                {
                                        "кухня": {
                                                "$ eq": 1
                                        }
                                }
                        ]
                },
                "WinningPlan": {
                        "stage": "COLLSCAN",
                        "фильтр": {
                                "$ and": [
                                        {
                                                "Город": {
                                                        "$ eq": "Бруклин"
                                                }
                                        },
                                        {
                                                "кухня": {
                                                        "$ eq": 1
                                                }
                                        }
                                ]
                        },
                        «направление»: «вперед»
                },
                "rejectedPlans": []
        },
        "executeStats": {
                "executeSuccess": правда,
                "nReturned": 0,
                "executeTimeMillis": 94,
                "totalKeysExamined": 0,
                "totalDocsExamined": 25359,
                "исполнительные этапы": {
                        "stage": "COLLSCAN",
                        "фильтр": {
                                "$ and": [
                                        {
                                                "Город": {
                                                        "$ eq": "Бруклин"
                                                }
                                        },
                                        {
                                                "кухня": {
                                                        "$ eq": 1
                                                }
                                        }
                                ]
                        },
                        "nReturned": 0,
                        "executeTimeMillisEstimate": 70,
                        «работает»: 25468,
                        «продвинутый»: 0,
                        «NeedTime»: 25360,
                        «NeedFetch»: 107,
                        «saveState»: 246,
                        "restoreState": 246,
                        "isEOF": 1,
                        «делает недействительными»: 0,
                        «направление»: «вперед»,
                        "docsExamined": 25359
                }
        },
        "serverInfo": {
                "хост": "сервер",
                «порт»: 27017,
                «версия»: «3.0.7»,
                "gitVersion": "6ce7cbe8c6b899552dadd907604559806aa2e9bd"
        },
        "хорошо": 1
}

Получить данные о ресторанах здесь

Поведение

Режимы многословия

Поведение db.collection.explain () и объем возвращаемой информации зависят от режима многословия.

Режим queryPlanner

По умолчанию db.collection.explain () выполняется в режиме многословия queryPlanner.

Режим executeStats

MongoDB запускает оптимизатор запросов, чтобы выбрать выигрышный план, выполняет выигрышный план до его завершения и возвращает статистику, описывающую выполнение выигрышного плана.

allPlansExecution Mode

MongoDB запускает оптимизатор запросов, чтобы выбрать выигрышный план и выполняет выигрышный план до его завершения. В режиме «allPlansExecution» MongoDB возвращает статистику, описывающую выполнение плана выигрыша, а также статистику для других планов-кандидатов, захваченных во время выбора плана.

Предыдущий: метод db.collection.dropIndexes ()
Далее: метод db.collection.find ()

Новый контент: Composer: менеджер зависимостей для PHP , R программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code