English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Neste capítulo, vamos aprender sobre consultas cobertas.
De acordo com o documento oficial do MongoDB, as consultas cobertas são do tipo que-
Todos os campos na consulta são parte do índice.
Todos os campos retornados na consulta estão no mesmo índice.
Como todos os campos existentes na consulta são parte do índice, o MongoDB coincidirá com as condições da consulta e usará o mesmo índice para retornar os resultados, sem necessidade de verificar o conteúdo do documento internamente. Como o índice está na RAM, a obtenção de dados a partir do índice é muito mais rápida do que obter dados através da varredura dos documentos.
Para testar as consultas cobertas, consultesers
Os seguintes documentos na coleção-
{ "_id": ObjectId("53402597d852426020000003", "contact": ""987654321", "dob": "0"1-01-1991", "gender": "M", "name": "Tom Benzamin", "user_name": "tombenzamin" }
Primeiro, usaremos a seguinte consulta para criar um índice composto nos campos gender e user_name da coleção users–
>db.users.createIndex({gender:1,user_name:1} { "createdCollectionAutomatically": false, "numIndexesBefore": 1, "numIndexesAfter": 2, "ok": 1 }
Agora, o índice cobrirá as seguintes consultas-
>db.users.find({gender:"M"},{user_name:1,_id:0) {"user_name": "tombenzamin"}
Isso é, para a consulta acima, o MongoDB não verificará os documentos do banco de dados. Em vez disso, ele obterá os dados necessários dos dados do índice, o que é muito rápido.
Devido ao fato de que o índice não incluir_id
O campo, então o excluímos explicitamente do resultado da consulta, porque o MongoDB retorna o campo _id por padrão em cada consulta. Portanto, a consulta a seguir não estará incluída nos índices criados -
>db.users.find({gender:"M"},{user_name:1} {"_id": ObjectId("53402597d852426020000003"), "user_name": "tombenzamin"}
Por fim, lembre-se de que, se, o índice não cobre a consulta
Qualquer campo de índice é um array
Qualquer campo de índice é um subdocumento