Latest web development tutorials

MongoDB copertura di query indice

La descrizione ufficiale del documento MongoDB, che copre la seguente query è una query:

  • Tutti i campi di query fanno parte dell'indice
  • Tutti i campi nella stessa query restituisce l'indice

Poiché tutti appaiono nel campo query fa parte dell'indice, i file di dati MongoDB senza dover recuperare l'intero termini di ricerca partita e restituire i risultati della query utilizzando lo stesso indice.

Poiché l'indice risiede nella RAM, l'accesso ai dati di leggere i dati molto più veloce scansione di documenti dall'indice.


Utilizzare una query indice di copertura

Per testare interrogazione Cap Index, utilizzare la seguente serie di utenti:

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

Creiamo una collezione utenti indice comune, campo di genere e nome_utente:

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

Ora, l'indice coprirà la seguente query:

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

Cioè, per l'interrogazione di cui sopra, MongoDB non è intenzione di file per un database. Invece, estrae i dati dall'indice, che è ricerca di dati molto veloce.

Dal momento che il nostro indice non comprende il campo _id, _id verrà restituito per default nella query, possiamo concentrarci escluderlo in MongoDB risultati della query.

Gli esempi che seguono non sono governati _id, la query non saranno coperti:

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

Infine, se la seguente query, la query non può usare la copertura dell'indice:

  • Tutti campo indice è un array
  • Tutti campo sottoindice è un documento