MongoDB Indicizzazione: createIndex() e dropIndex()
⚡ Riepilogo intelligente
MongoDB Gli indici memorizzano un sottoinsieme ordinato dei campi di una collezione, consentendo alle query di individuare i documenti senza dover scansionare ogni record. I metodi createIndex, getIndexes e dropIndex creano, elencano e rimuovono queste strutture cruciali per le prestazioni.

Che cosa sono MongoDB Indici?
Gli indici sono molto importanti in qualsiasi database e con MongoDB non è diverso. Con l'uso degli indici, l'esecuzione di query in MongoDB diventa più efficiente.
Se avessi una collezione con migliaia di documenti senza indici e poi eseguissi una query per trovare determinati documenti, allora in tal caso MongoDB sarebbe necessario scansionare l'intera collezione per trovare i documenti. Ma se avessi gli indici, MongoDB utilizzerebbe questi indici per limitare il numero di documenti da cercare nella raccolta.
Gli indici sono set di dati speciali che memorizzano una parte parziale dei dati di una collezione. Poiché i dati sono parziali, la lettura risulta più agevole. Questo set parziale memorizza il valore di un campo specifico, o di un insieme di campi, ordinati in base al valore del campo stesso.
Comprendere l'impatto degli indici
Sebbene l'introduzione abbia dimostrato che gli indici sono utili per le query, averne troppi può rallentare altre operazioni come l'inserimento, la cancellazione e l'aggiornamento.
Se sui documenti vengono eseguite frequentemente operazioni di inserimento, cancellazione e aggiornamento, gli indici dovranno essere modificati con altrettanta frequenza, il che rappresenterebbe un sovraccarico per la collezione.
L'esempio seguente mostra quali valori di campo possono costituire un indice in una collezione. Un indice può essere basato su un solo campo della collezione oppure su più campi della collezione.
Nell'esempio seguente, l'ID dipendente "1" e il dipendenteCode Gli indici "AA" vengono utilizzati per indicizzare i documenti nella collezione. Pertanto, quando viene effettuata una ricerca, questi indici vengono utilizzati per trovare rapidamente ed efficacemente i documenti richiesti nella collezione.
Quindi anche se la query di ricerca è basata sul dipendenteCode “AA”, quel documento verrebbe restituito.
Come creare indici: createIndex()
Creazione di un indice in MongoDB viene eseguito utilizzando il file createIndex metodo.
L'esempio seguente mostra come aggiungere un indice a una collezione. Supponiamo di avere la stessa collezione Employee, che ha i campi denominati "Employeeid" e "EmployeeName".
db.Employee.createIndex({Employeeid:1})
Code Spiegazione:
- Migliori createIndex Il metodo viene utilizzato per creare un indice basato sull'"Employeeid" del documento.
- Il parametro “1” indica che quando l’indice viene creato con i valori del campo “Employeeid”, questi devono essere ordinati in ordine crescente. Si noti che questo è diverso dal campo _id (che identifica in modo univoco ogni documento) che MongoDB crea automaticamente. I documenti verranno ora ordinati in base all'Employeeid e non al campo _id.
Se il comando viene eseguito correttamente, verrà visualizzato il seguente output:
Produzione:
- Il valore numIndexesBefore: 1 indica il numero di valori di campo negli indici prima dell'esecuzione del comando. Ogni collezione ha il campo _id, che viene anch'esso conteggiato come valore di campo, quindi numIndexesBefore è pari a 1.
- Il valore numIndexesAfter: 2 indica il numero di valori di campo negli indici dopo l'esecuzione del comando.
- L'output "ok: 1" indica che l'operazione è andata a buon fine e che il nuovo indice è stato aggiunto alla raccolta.
Il codice sopra riportato mostra come creare un indice basato sul valore di un singolo campo, ma è anche possibile creare un indice basato su più valori di campo. L'esempio seguente mostra come procedere:
db.Employee.createIndex({Employeeid:1, EmployeeName:1})
Il metodo createIndex ora tiene conto di più valori di campo, il che comporta la creazione dell'indice in base a "Employeeid" e "EmployeeName". Employeeid:1 e EmployeeName:1 indicano che l'indice deve essere creato su questi due valori di campo, con :1 che indica l'ordine crescente. Questo è noto come indice composto.
Come trovare gli indici: getIndexes()
Trovare un indice in MongoDB viene eseguito utilizzando il file ottenereIndici metodo. L'esempio seguente mostra come si può fare:
db.Employee.getIndexes()
Il metodo getIndexes viene utilizzato per trovare tutti gli indici in una raccolta.
Se il comando viene eseguito correttamente, verrà visualizzato il seguente output:
Produzione:
L'output restituisce un documento che mostra la presenza di due indici nella collezione: il campo _id e il campo Employeeid. Il simbolo :1 indica che i valori dei campi nell'indice vengono creati in ordine crescente.
Come eliminare gli indici: dropIndex()
Rimozione di un indice in MongoDB viene eseguito utilizzando il file dropIndex metodo. L'esempio seguente mostra come si può fare:
db.Employee.dropIndex({Employeeid:1})
Il metodo dropIndex accetta i valori dei campi richiesti che devono essere rimossi dall'indice.
Se il comando viene eseguito correttamente, verrà visualizzato il seguente output:
Produzione:
- Il valore nIndexesWas: 3 indica il numero di valori di campo negli indici prima dell'esecuzione del comando. Ogni collezione ha il campo _id, che viene anch'esso conteggiato come valore di campo.
- L'output ok: 1 specifica che l'operazione ha avuto successo e il campo "Employeeid" viene rimosso dall'indice.
Per rimuovere tutti gli indici contemporaneamente da una raccolta, è possibile utilizzare il comando dropIndexes. L'esempio seguente mostra come procedere:
db.Employee.dropIndexes()
Il metodo dropIndexes eliminerà tutti gli indici tranne l'indice _id.
Se il comando viene eseguito correttamente, verrà visualizzato il seguente output:
Produzione:
- Il valore nIndexesWas: 2 indica il numero di valori di campo negli indici prima dell'esecuzione del comando.
- Ogni collezione ha il campo _id, che conta anche come valore del campo e non verrà rimosso da MongoDB; questo è ciò che indica questo messaggio.
- L'output ok: 1 specifica che l'operazione ha avuto successo.










