Introduzione a MongoDB creare indice

MongoDB è utilizzato da complessi data mining, algoritmi di analisi dei dati per gestire, modificare e organizzare i dati su cui lavorano. I dati che trattano sono enormi e richiedono una gestione efficiente. Gli indici nel DBMS aiutano ad aumentare le prestazioni di query come il recupero e l'aggiornamento dei dati. Immagina una collezione che ha centinaia di documenti. Per trovare documenti che corrispondono a un filtro particolare, MongoDB dovrebbe abbinare il filtro a tutti i documenti presenti nella raccolta, che è noioso e richiede tempo. Invece di indicizzare i documenti (campi) ridurrà significativamente i tempi di ricerca. In questo argomento, impareremo a MongoDB creare Index.

Gli indici sono strutture di dati che sono impaccate con un set di dati parziale all'interno di se stesso. L'indice memorizza il valore di uno o più campi particolari nei documenti in modo ordinato che supporta operazioni come comparatori, equatori e query basate sull'intervallo in ordine sequenziale.

La sintassi di base per creare l'indice

db.collectionName.createIndex(, )

chiaviChiavi è un documento che contiene una coppia di valori di campo in cui il campo è chiave di indice e valore è il tipo di indice.

Ad esempio, il valore è 1 per l'ordinamento della chiave di indice in ordine crescente e -1 in ordine decrescente

OpzioniLe opzioni sono un documento che contiene una serie di opzioni che influenzano la creazione di indici. Queste opzioni sono opzionali.

Tipi di indici

Ecco i tipi di indici menzionati di seguito

1. ID predefinito

Ogni documento presente nella raccolta Mongo contiene un indice

impostazione predefinita denominata "_id". Un ID oggetto viene creato durante la creazione del documento se non sono presenti valori di indice.

2. Campo singolo

L'indicizzazione viene eseguita su un singolo campo e l'operazione di ordinamento è crescente o decrescente poiché MongoDB può attraversare in entrambe le direzioni.

Esempio: db.collection.createIndex ((“age”: 1))

3. Indice composto

MongoDB supporta indici definiti dall'utente in più campi. L'ordine dei campi indicati nell'indice composto è abbastanza significativo. L'ordinamento prende da sinistra a destra, la priorità rispetto al primo campo menzionato negli indici composti è superiore a quella del prossimo.

Esempio: db.collection.createIndex ((“age”: 1, ”dim.h”: - 1)). In questo esempio, tutti i documenti con il campo di età vengono prima ordinati in ordine crescente e poi in ordine decrescente di altezza in dim.

4. Indice multikey

MongoDB utilizza l'indice Multikey per indicizzare i dati in formato array. Durante l'indicizzazione, ogni elemento dell'array viene creato un indice separato e i dati vengono indicizzati in base agli elementi presenti nell'array.MongoDB si occupa se il campo dell'indice ha un array in esso predefinito.

5. Indice geospaziale

MongoDB utilizza l'indicizzazione geospaziale per trovare i dati in base alla sua posizione. Supporta due tipi di ricerca, 2D (bidimensionale) e 3D (tridimensionale). Questi indici vengono utilizzati per ottenere risultati all'interno di un intervallo. Il numero di risultati della ricerca può anche essere limitato usando la funzione limit ().

Esempio: db.players.find ((loc: ($ near: ($ geometry: (type: “high_school”, sport: ”basketball” age: (14, 17)))))). Questo esempio troverà tutte le voci degli studenti che frequentano la scuola superiore, gioca a basket e hanno un'età compresa tra 14 e 17 anni.

6. Indice di testo

MongoDB fornisce l'indicizzazione del testo per supportare le query in formato stringa. L'indice di testo può avere qualsiasi campo costituito da elementi stringa o da una matrice di elementi stringa.
Esempio: db.movies.find (($ text: ($ search: "tom hardy"))). In questo esempio troverai tutti i documenti che hanno nomi di attori come tom hanks, tom felton, tom hiddelson e robert hardy e John Hardy. MongoDB accetta la stringa fornita per la ricerca e fornisce tutti i documenti che contengono una stringa di ricerca completa o parziale.

7. Indice tratteggiato

MongoDB utilizza un indice con hash per supportare lo sharding. Gli indici di hash calcolano il valore di hash dei campi indice usando una funzione di hash. Non supporta l'indicizzazione multi-chiave (valori di array). Gli indici hash vengono creati utilizzando la funzione createIndex e il valore del campo indice deve essere sempre 'hash'.

Esempio: db.collection.createIndex ((: “hashed”)) . Per trovare i documenti con valori hash, db.collection.find ((: Math.pow (2, 63))) restituirà tutti i documenti con indici hash nell'intervallo 2 63.

Opzioni per l'indicizzazione

1. Indice univoco

Come suggerisce il nome, gli indici univoci sono unici in natura. MongoDB non consente valori duplicati se un indice viene creato utilizzando l'opzione "unica". Per specificare che un indice è univoco durante la creazione dell'indice, è necessario utilizzare il seguente formato.

db.collection.createIndex (, (unique: true)) . I vincoli univoci possono essere imposti anche sull'indice composto, sull'indice multikey e sull'indice di testo.

2. Indice parziale

Indici parziali indicizzano i documenti di una raccolta in base a un filtro o un'espressione specifici. Poiché l'indice degli indici parziali, solo un sottogruppo dei requisiti dello spazio di raccolta (memoria) è inferiore e ciò comporta anche prestazioni ridotte.

Esempio :

db.pupils.createIndex ((name: 1), (partialFilterExpression: (age: ($ gt: 5)))
Espressioni di filtro supportate:

  • $ gt, $ gte, $ lt, $ lte (maggiore di, maggiore o uguale, minore di e minore di o uguale)
  • $ operatori di tipo
  • $ esiste: operazione vera
  • Operatore di uguaglianza ($ eq)
  • Logico e, o operazioni

3. Indice TTL

TTL indicizza un tipo speciale di indici a chiave singola che possono essere eliminati dalla raccolta MongoDB dopo un timeout o a un orario di orologio specifico.Alcune applicazioni che registrano dati generati dalla macchina o registri che alla fine non sarebbero più validi dopo un certo periodo di tempo lo trovano molto utile.

Esempio:

db.log.createIndex (("lastModifiedDate": 1), (expireAfterSeconds: 10000))

4. Indice sparso

Gli indici sparsi indicizzano solo i documenti che contengono il valore del campo dell'indice. Ignora tutti gli altri documenti che non contengono il campo. Per impostazione predefinita, gli indici non sparsi contengono tutti i documenti nelle raccolte, con null come valore per quei campi che non sono presenti.

Esempio:

db.pupil.createIndex (("age": 1), (sparse: true))
L'indice non indicizza i documenti che non contengono l'età del campo.

5. Indice insensibile al maiuscolo / minuscolo

Gli indici senza distinzione tra maiuscole e minuscole vengono utilizzati per supportare query che eseguono confronti di stringhe senza alcun rispetto per la distinzione tra maiuscole e minuscole.

Esempio:

db.collection.createIndex (("key": 1), (fascicolazione:))

Regole di confronto:

Il documento di confronto viene utilizzato per specificare regole di lingua, lettere maiuscole ecc … per il confronto delle stringhe.

I documenti di confronto sono composti da:

Conclusione: MongoDB crea l'indice

In conclusione, l'indicizzazione è fondamentale per un'esecuzione più rapida delle query e della gestione della memoria. Gli indici possono essere creati, modificati in base alle esigenze degli utenti e rilasciati quando non necessari.

Articoli consigliati

Questa è una guida per creare l'indice MongoDB. Qui discutiamo i tipi di indici e le opzioni per l'indicizzazione insieme agli esempi. Puoi anche leggere il seguente articolo per saperne di più -

  1. Strumenti MongoDB
  2. Che cos'è MongoDB?
  3. Replica in MongoDB
  4. Vantaggi di MongoDB