Лучшее руководство по MongoDB покрытия запросов индекс в 2024 году. В этом руководстве вы можете изучить Используйте индекс покрытия запроса,

MongoDB покрытия запросов индекс

Официальное описание документа MongoDB, охватывающий следующий запрос является запросом:

  • Все поля запроса являются частью индекса
  • Все поля в том же запросе, возвращает индекс

Так как все появляются в поле запроса является частью индекса, файлов данных MongoDB без необходимости извлекая все условия соответствия запроса и возврата результатов запроса, используя один и тот же индекс.

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


Используйте индекс покрытия запроса

Для проверки индекса колпачок запроса, используйте следующий набор пользователей:

{
   "_id": ObjectId("53402597d852426020000002"),
   "contact": "987654321",
   "dob": "01-01-1991",
   "gender": "M",
   "name": "Tom Benzamin",
   "user_name": "tombenzamin"
}

Мы создаем совместную коллекцию пользователей индекса, поле пол и user_name:

>db.users.ensureIndex({gender:1,user_name:1})

Теперь, индекс будет охватывать следующий запрос:

>db.users.find({gender:"M"},{user_name:1,_id:0})

То есть, для приведенного выше запроса, MongoDB не собирается в файл для базы данных. Вместо этого, он извлекает данные из индекса, который очень быстро запроса данных.

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

Следующие примеры не исключены _id, запрос не будет рассматриваться:

>db.users.find({gender:"M"},{user_name:1})

Наконец, если следующий запрос, запрос не может использовать индекс покрытия:

  • Все поле индекса является массивом
  • Все поля подиндекс является документом,