English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Gli indici supportano l'elaborazione efficiente delle query. Senza indici, MongoDB deve scansionare ogni documento della raccolta per selezionare i documenti che corrispondono all'istruzione di query. Questa scansione è molto inefficiente e richiede che MongoDB elabori grandi quantità di dati.
Un indice è una struttura dati speciale che memorizza una piccola parte del set di dati in un formato facile da esplorare. L'indice memorizza i valori di un campo o di una raccolta di campi, ordinati secondo il valore specificato nell'indice.
Per creare un indice, devi utilizzare il metodo createIndex() di MongoDB.
createIndex()La sintassi di base del metodo è ().
>db.COLLECTION_NAME.createIndex({KEY:1})
Qui, KEY è il nome del campo su cui creare l'indice, 1 indica l'ordinamento crescente. Per creare un indice in ordine decrescente, devi usare -1.
>db.mycol.createIndex({"title":1}) { "createdCollectionAutomatically" : false, "numIndexesBefore" : 1, "numIndexesAfter" : 2, "ok" : 1 } >
IncreateIndex()Nel metodo, puoi passare più campi per creare un indice su più campi.
>db.mycol.createIndex({"title":1,"description":-1}) >
createIndex() accetta parametri opzionali, l'elenco dei parametri opzionali è il seguente:
Parametro | Tipo | Descrizione |
---|---|---|
background | Boolean | Il processo di creazione dell'indice blocca altre operazioni del database, background può specificare di creare l'indice in modo后台, ovvero aggiungere "background" Parametro opzionale. "background" Il valore predefinito èfalse. |
unique | Boolean | L'indice creato è univoco. Specificare true per creare un indice univoco. Il valore predefinito èfalse. |
name | string | Il nome dell'indice. Se non specificato, MongoDB genera un nome dell'indice attraverso il nome del campo dell'indice e l'ordine di ordinamento. |
dropDups | Boolean | 3.0+ versione è stata abbandonata.Al creare un indice univoco, eliminare i record duplicati, specificare true per creare un indice univoco. Il valore predefinito è false. |
sparse | Boolean | Non abilitare l'indice per i dati dei campi non esistenti nel documento; questo parametro deve essere prestato attenzione, se impostato su true, non verranno queryati i documenti che non contengono il campo corrispondente nell'indice. Il valore predefinito è false. |
expireAfterSeconds | integer | Specificare un valore numerico in secondi, completare la configurazione TTL, impostare la durata di vita della collezione. |
v | versione dell'indice | Versione dell'indice. La versione predefinita dell'indice dipende dalla versione del mongod utilizzata per creare l'indice. |
weights | document | Valore di peso dell'indice, numero tra 1 e 99,999, che rappresenta il peso del campo dell'indice rispetto agli altri campi degli indici. |
default_language | string | Per gli indici di testo, questo parametro determina l'elenco delle regole di disattivazione delle parole di stop e delle radici e dei morfemi. Il valore predefinito è in inglese |
language_override | string | Per gli indici di testo, questo parametro specifica il nome del campo contenuto nel documento, la copertura linguistica predefinita è il linguaggio, il valore predefinito è language. |
Puoi utilizzare il metodo dropIndex() di MongoDB per eliminare un indice specifico.
La sintassi di base del metodo DropIndex() è la seguente ()。
>db.COLLECTION_NAME.dropIndex({KEY:1})
In questo caso, la chiave è il nome del file sul quale si desidera creare l'indice, mentre 1 indica l'ordinamento crescente. Per creare un indice in ordine decrescente, è necessario utilizzare -1.
>db.mycol.dropIndex({"title":1}) { "ok": 0, "errmsg": "can't find index with key: { title: 1.0 }", "code": 27, "codeName": "IndexNotFound" }
Questo metodo elimina più (specificati) indici sulla collezione.
La sintassi di base del metodo DropIndexes() è la seguente ()-
>db.COLLECTION_NAME.dropIndexes()
Supponiamo che abbiamo creato 2 indici nella collezione denominata mycol come segue:
> db.mycol.createIndex({"title":1,"description":-1})
Esempio seguente elimina l'indice mycol creato in precedenza:
>db.mycol.dropIndexes({"title":1,"description":-1}) {"nIndexesWas": 2, "ok": 1} >
Questo metodo restituisce la descrizione di tutti gli indici nella raccolta.
Ecco la sintassi di base del metodo getIndexes() -
db.COLLECTION_NAME.getIndexes()
Supponiamo di aver creato 2 indici nel setto mycol denominato, come segue -
> db.mycol.createIndex({"title":1,"description":-1})
Esempio di ricerca di tutti gli indici della raccolta mycol -
> db.mycol.getIndexes() [ { "v" : 2, "key" : { "_id" : 1 } "name" : "_id_", "ns" : "test.mycol" } { "v" : 2, "key" : { "title" : 1, "description" : -1 } "name" : "title_1_description_-1", "ns" : "test.mycol" } ] >