Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Indici composti
Gli indici composti memorizzano le informazioni di due o più campi in una raccolta di documenti, permettendo interrogazioni sul primo campo o su qualsiasi campo del prefisso. Questi indici ottimizzano le prestazioni per le query che filtrano su più campi contemporaneamente o combinano il filtraggio con operazioni di ordinamento. Sono efficaci anche per le interrogazioni a condizione singola sui campi indicizzati più a sinistra. Il database sfrutta queste voci di indice per individuare in modo efficiente i documenti corrispondenti senza eseguire scansioni complete della raccolta.
Gli indici di campo composti sono utili quando:
-
È necessario filtrare su più campi contemporaneamente.
-
È necessario combinare il filtraggio con le operazioni di ordinamento.
Proprietà dell'indice supportate
| Opzione | 3.6 | 4.0 | 5.0 | 8.0 | Cluster elastico |
|---|---|---|---|---|---|
| name | Sì | Sì | Sì | Sì | Sì |
| unico | Sì | Sì | Sì | Sì | Sì |
| sparso * | Sì | Sì | Sì | Sì | Sì |
| parziale* FilterExpression | No | No | Sì | Sì | No |
* Le partialFilterExpression opzioni sparse and non possono essere utilizzate insieme nella stessa definizione di indice. Se si tenta di creare un indice con queste opzioni, l'operazione avrà esito negativo e verrà visualizzato il seguente errore:
Error in specification: cannot mix partialFilterExpression and sparse options
Creazione di un indice composto
Utilizzate il createIndex() metodo per creare un indice composto. La sintassi del metodo è: db.collection.createIndex(<keys>, <options>)
Il keys parametro è un documento JSON che specifica i campi e l'ordinamento dell'indice:
{ "<field 1>": <1 (ascending)|-1 (descending)>, "<field 2>": <1 (ascending)|-1 (descending)>, ... }
Nota che solo un campo può essere una matrice in un indice composto. Se si tenta di creare un indice composto su due o più campi di matrice, l'operazione avrà esito negativo e verrà visualizzato il seguente errore:
multiple fields of compound index cannot be arrays
Il options parametro è un documento JSON che specifica le opzioni per l'indice:
{ "name": "<name>", "unique": <true | false>, "sparse": <true | false>, "partialFilterExpression": <filter expression> }
Vedi Index Properties per esempi di creazione di indici composti.