MongoDB: метод db.collection.explain ()
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 программирования