Latest web development tutorials

MongoDB couvrant requête d'index

Le MongoDB description du document officiel, couvrant la requête suivante est une requête:

  • Tous les champs de la requête font partie de l'indice
  • Tous les champs de la même requête renvoie l'index

Étant donné que tous apparaissent dans le champ de requête fait partie de l'indice, les fichiers de données MongoDB sans avoir à récupérer l'intégralité des termes correspondance de requête et retourner des résultats de requête en utilisant le même index.

Comme l'indice réside dans la RAM, l'accès aux données que pour lire les données beaucoup plus rapidement en numérisant les documents de l'index.


Utilisez une requête d'index de couverture

Pour tester indice de plafonnement requête, utilisez l'ensemble des utilisateurs suivants:

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

Nous créons une collection conjointe des utilisateurs de l'indice, le sexe sur le terrain et user_name:

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

Maintenant, l'indice couvre la requête suivante:

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

Cela est, pour la requête ci-dessus, MongoDB ne va déposer pour une base de données. Au lieu de cela, il extrait les données de l'index, qui est requête de données très rapide.

Depuis notre indice ne comprend pas le champ _id, _id sera retourné par défaut dans la requête, nous pouvons nous concentrer exclure dans les résultats de la requête MongoDB.

Les exemples suivants ne sont pas exclues _id, la requête ne sera pas couvert:

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

Enfin, si la requête suivante, la requête ne peut pas utiliser la couverture de l'indice:

  • Tous les champs d'index est un tableau
  • Tous les champs sous-indice est un document