MongoDB Ottieni tutti gli indici sulla raccolta

MongoDB Ottieni tutti gli indici sulla raccolta
In questo articolo, esploreremo i due metodi principali che puoi utilizzare per ottenere l'elenco di tutti gli indici in una determinata raccolta. Gli indici sono una struttura di dati molto importante che vengono utilizzate per migliorare l'efficienza e le prestazioni delle query di esecuzione in una raccolta MongoDB.

Gli indici consentono a MongoDB di recuperare rapidamente i documenti che corrispondono a una query specifica senza scansionare l'intera raccolta per i risultati corrispondenti.

Tuttavia, è bene tenere presente che questo post non copre il processo di creazione dell'indice. Controlla il nostro tutorial sull'argomento per saperne di più.

Saltiamo.

Metodo 1: metodo MongoDB getIndexes ()

Il primo metodo di cui discuteremo è il metodo getIndexes (). Questo metodo è disponibile nella shell MongoDB che consente di ottenere tutti gli indici in una determinata raccolta come array.

Questo metodo restituisce informazioni dettagliate sugli indici disponibili, inclusi gli indici nascosti in un formato leggibile dall'uomo.

La sintassi del comando è come mostrata nella seguente:

db.collezione.getIndexes ()

Nota: a seconda della configurazione del cluster, questo metodo può richiedere all'utente in esecuzione di avere le autorizzazioni degli indici dell'elenco sulla raccolta di destinazione.

Supponiamo di avere una collezione chiamata "Netflix". Possiamo ottenere tutti gli indici nella raccolta eseguendo la seguente query:

db.Netflix.getIndexes ()

La richiesta deve restituire un array con le informazioni sugli indici disponibili nella raccolta di destinazione.

Un output di esempio è come mostrato nel seguente:

[
v: 2, chiave: _id: 1, nome: '_id_',

V: 2,
Chiave: anno: 1, punteggio: -1,
Nome: 'Year_Index',
COLLAZIONE:
locale: 'en',
CASELEVEL: FALSE,
CaseFirst: 'Off',
forza: 3,
NumericOrdering: falso,
alternativa: "non ignorante",
maxvariable: 'punct',
Normalizzazione: falso,
indietro: falso,
Versione: '57.1 '


"

In questo caso, la raccolta contiene un indice chiamato "anno_index". Possiamo anche trovare un'altra informazione sull'indice come forza, versione, locale e altro ancora.

Metodo 2: Ottieni gli indici di raccolta usando il metodo ListIndexes

Il secondo metodo che possiamo utilizzare per visualizzare l'elenco degli indici disponibili in una determinata raccolta è il metodo ListIndexes. Questo metodo è un comando di database ed è supportato in un driver specifico per la lingua.

La sintassi del comando è come mostrata:

db.runCommand (

ListIndexes: "",
cursore: batchsize: ,
commento:

)

I parametri supportati sono come mostrati:

  1. collection_name - Specifica il nome della raccolta di destinazione come tipo di stringa.
  2. BatchSize - Specifica la dimensione del batch per il cursore.
  3. Commento - Commento dell'utente per il comando specificato.

Considera la seguente query di esempio:

db.runCommand (listIndexes: "netflix")

La query precedente invoca il comando ListIndexes sulla raccolta "Netflix". Ciò dovrebbe restituire tutti gli indici per la raccolta specifica come mostrato nella seguente uscita:


cursore:
ID: Long ("0"),
NS: 'Entertainment.netflix ',
primo lotto: [
v: 2, chiave: _id: 1, nome: '_id_',

V: 2,
Chiave: anno: 1, punteggio: -1,
Nome: 'Year_Index',
COLLAZIONE:
locale: 'en',
CASELEVEL: FALSE,
CaseFirst: 'Off',
forza: 3,
NumericOrdering: falso,
alternativa: "non ignorante",
maxvariable: 'punct',
Normalizzazione: falso,
indietro: falso,
Versione: '57.1 '


"
,
OK: 1,
'$ clustertime':
clustertime: timestamp (t: 1663940670, i: 2),
firma:
Hash: binario (buffer.da ("C243619D64CA61A5C651B4BBB21A8B020A101278", "Hex"), 0),
KeyID: Long ("7110175001109594117")

,
OperationTime: Timestamp (T: 1663940670, I: 2)

Poiché non specifichiamo la dimensione del batch per il cursore, il comando restituisce tutti i risultati del comando ListIndexes.

Per mostrare un solo risultato, possiamo impostare il parametro batchSize su 1 come mostrato nel seguente:

db.RunCommand (ListIndexes: "Netflix", Cursor: BatchSize: 1)

In questo caso, il comando dovrebbe restituire un output come mostrato nel seguente:


cursore:
ID: Long ("3645642518793960930"),
NS: 'Entertainment.netflix ',
FirstBatch: [V: 2, Key: _id: 1, nome: '_id_']
,
OK: 1,
'$ clustertime':
clustertime: timestamp (t: 1663940831, i: 2),
firma:
Hash: binario (buffer.da ("66058e9b4b4d59de21ff01c05480d844438e99411", "esadecimale"), 0),
KeyID: Long ("7110175001109594117")

,
OperationTime: Timestamp (T: 1663940831, I: 2)

È possibile aumentare il batchsize per ottenere maggiori informazioni sugli indici nella raccolta.

Conclusione

In questo post, abbiamo discusso dei due metodi principali per recuperare tutti gli indici di una determinata raccolta utilizzando i comandi di shell MongoDB e i comandi del database. Sentiti libero di esplorare il documento per informazioni più dettagliate.

Codice felice!