English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
En este capítulo, aprenderemos sobre las consultas cubiertas.
De acuerdo con el documento oficial de MongoDB, las consultas cubiertas son de este tipo, donde-
Todos los campos en la consulta son parte del índice.
Todos los campos devueltos en la consulta están en el mismo índice.
Dado que todos los campos existentes en la consulta son parte del índice, MongoDB coincidirá con las condiciones de la consulta y devolverá los resultados utilizando el mismo índice, sin necesidad de ver el contenido interno del documento. Ya que el índice reside en RAM, es mucho más rápido obtener datos del índice en comparación con obtener datos escaneando los documentos.
sers
Los siguientes documentos en la colección-
{ "_id": ObjectId("53402597d852426020000003", "contact": ""987654321", "dob": "0"1-01-1991", "gender": "M", "name": "Tom Benzamin", "user_name": "tombenzamin" }
Primero utilizaremos la siguiente consulta para crear un índice compuesto en los campos gender y user_name de la colección users–
>db.users.createIndex({gender:1,user_name:1} { "createdCollectionAutomatically": false, "numIndexesBefore": 1, "numIndexesAfter": 2, "ok": 1 }
Ahora, el índice cubrirá las siguientes consultas-
>db.users.find({gender:"M"},{user_name:1,_id:0} {"user_name":"tombenzamin"}
Es decir, para la consulta anterior, MongoDB no verá los documentos de la base de datos. En su lugar, obtendrá los datos necesarios de los datos del índice, lo cual es muy rápido.
Dado que el índice no contiene_id
El campo, por lo tanto, lo hemos excluido explícitamente de los resultados de la consulta, ya que MongoDB devuelve el campo _id por defecto en cada consulta. Por lo tanto, la siguiente consulta no incluirá lo siguiente en el índice creado--
>db.users.find({gender:"M"},{user_name:1} {"_id":ObjectId("53402597d852426020000003{"user_name":"tombenzamin"}
Por último, recuerde que, si, los índices no pueden cubrir la consulta
Cualquier campo de índice es un array
Cualquier campo de índice es un subdocumento