Покрытый запрос — это запрос, который MongoDB может полностью удовлетворить только из индекса, без загрузки документов с диска. Это делает покрытые запросы значительно быстрее, чем обычные запросы.
Чтобы запрос считался "покрытым", все следующие условия должны быть выполнены:
_id явно исключено из результатов (если только оно не является частью индекса)Рассмотрим индекс, определённый так:
{ username: 1, email: 1 }
Следующий запрос был бы полностью покрыт:
db.users.find(
{ username: "alice" },
{ email: 1, _id: 0 }
)
И поле фильтра (username), и возвращаемое поле (email) присутствуют в индексе, а _id исключено.
Покрытые запросы — одна из наиболее эффективных техник оптимизации запросов в MongoDB. Если проектировать индексы под наиболее частые паттерны запросов — с учётом полей фильтра и проекции — MongoDB сможет полностью обойтись без чтения документов и возвращать результаты значительно быстрее.
Покрытый запрос в MongoDB требует, чтобы все поля фильтра и все возвращаемые поля существовали в одном и том же индексе, и ни одно возвращаемое поле не может содержать массив или встроенный документ.
Новый — ещё не проверен сообществом
Вы