Con la funzione MongoDB Create Index generate un indice, ottenendo così una migliore visione d’insieme e redendo più semplice ri­spon­de­re a eventuali richieste. Inoltre, potete regolare l’indice ap­pli­can­do diversi parametri.

Cos’è Create Index in MongoDB?

Per com­pren­de­re in quali casi ricorrere a Create Index in MongoDB e perché la sua funzione è così im­por­tan­te nel lavoro quo­ti­dia­no con il sistema di gestione di base di dati, vale la pena di dare un’occhiata all’ar­chi­tet­tu­ra di MongoDB.

Di­ver­sa­men­te dai sistemi re­la­zio­na­li come MySQL, la me­to­do­lo­gia NoSQL non ricorre a tabelle, bensì a documenti, che vengono salvati all’interno di raccolte. Per questo motivo non hanno bisogno di seguire uno schema, ri­sul­tan­do così scalabili e molto fles­si­bi­li. In questo modo si possono costruire gi­gan­te­schi database, creare raccolte e salvare documenti. Quando dovete però in­ter­ro­ga­re il database per ritrovare de­ter­mi­na­ti dati, avete bisogno di ordine. È proprio a questo che servono gli indici.

Un indice non serve soltanto per dare ordine a un database, ma anche per sem­pli­fi­ca­re al sistema l’ela­bo­ra­zio­ne delle richieste. In sua assenza, infatti, un’enorme raccolta di diverse migliaia di documenti comporta tempi di attesa più lunghi e risultati poco chiari. Dotando, invece, i documenti di un indice, questi vengono clas­si­fi­ca­ti meglio e trovati in minor tempo. Poiché è ne­ces­sa­rio con­sul­ta­re solamente una parte dei documenti, la ricerca risulta più ef­fi­cien­te. È per questo che uti­liz­za­te il comando di Mongo DB Create Index.

La sintassi di Create Index in MongoDB

Il comando Create Index in MongoDB si compone delle voci relative alla raccolta, al comando, al criterio per le richieste e alla nu­me­ra­zio­ne:

>db.COLLECTION_NAME.createIndex ( {KEY:1} )

“COL­LEC­TION_NAME” indica il nome della raccolta nella quale deve essere generato l’indice; “crea­tein­dex” fa ri­fe­ri­men­to al comando, “KEY” mostra il campo all’interno della raccolta e “1” indica come la clas­si­fi­ca­zio­ne debba essere eseguita in suc­ces­sio­ne crescente. Per l’ordine di suc­ces­sio­ne opposto se­le­zio­na­te “-1”.

MongoDB: esempio di impiego di Create Index

Per com­pren­de­re ancora meglio la modalità di fun­zio­na­men­to e di utilizzo di Create Index, usiamo un semplice esempio, qui di seguito riportato:

>db.esempio.createIndex ( {"title":1} )

Il risultato appare come segue:

{
"createdCollectionAutomatically" : false,
"numIndexesBefore" : 1,
"numIndexesAfter": 2,
"ok" : 1
}

La prima riga indica come la raccolta sia stata creata ma­nual­men­te con il comando di MongoDB Create Col­lec­tion. La seconda riga mostra, invece, il numero degli indici presenti prima che il comando venisse eseguito. Nella terza riga viene vi­sua­liz­za­to il numero degli indici attuali (in seguito all’utilizzo del comando), mentre nella quarta e ultima riga viene segnalato come l’ope­ra­zio­ne abbia avuto esito positivo.

Opzioni per le funzioni di MongoDB Create Index

Per l’ot­ti­miz­za­zio­ne della funzione Create Index di MongoDB potete ricorrere a diverse opzioni ag­giun­ti­ve, che vanno inserite all’interno delle parentesi dopo il valore key. Le opzioni a vostra di­spo­si­zio­ne sono le seguenti:

  • back­ground: con questo parametro l’indice viene creato in back­ground, in modo da impedire che il processo di creazione sia di intralcio per lo svol­gi­men­to di altre attività del database. Questa opzione possiede sempre un valore booleano. Dunque, può essere “vera” (true) oppure “falsa” (false). Il valore standard è “false”.
  • unique: anche “unique” è un valore booleano. Nel caso in cui sia “true”, Create Index crea un indice speciale, il quale non include i documenti i cui valori key siano già stati uti­liz­za­ti. In questo modo ogni valore key si ripete solo una volta. Anche nel caso di unique il valore pre­de­fi­ni­to è “false”.
  • name: con questa opzione potete assegnare li­be­ra­men­te al vostro indice un nome a vostra scelta. Se ri­nun­cia­te a questo parametro il sistema genererà au­to­no­ma­men­te un nome.
  • sparse: qualora poniate questo valore su “true”, l’indice terrà conto solo dei documenti dotati di un campo chia­ra­men­te definito. Questo metodo vi consente di ri­spar­mia­re spazio, ma può anche rivelarsi impreciso. Il valore pre­de­fi­ni­to è “false”.
  • ex­pi­reAf­ter­Se­conds: con questa opzione potete decidere quanto a lungo MongoDB debba con­ser­va­re i documenti in una raccolta. Il valore viene indicato in secondi.
  • weights: questo parametro definisce l’im­por­tan­za di un campo in confronto ad altri campi di un indice. Il valore in questo caso è compreso tra 1 e 99999.
  • default_language: qualora de­si­de­ria­te uti­liz­za­re una lingua dif­fe­ren­te dall’inglese per il comando MongoDB Create Index, potete se­le­zio­nar­la con “default_language”.
  • language_override: con questa opzione so­vra­scri­ve­te la lingua pre­im­po­sta­ta.

Can­cel­la­re gli indici con Drop Index in MongoDB

Dal momento che ora sapete come creare un nuovo indice con Create Index, resta solo un problema: come eli­mi­nar­lo. La funzione MongoDB Drop Index è pensata ap­po­si­ta­men­te a questo scopo. A questo proposito avete due pos­si­bi­li­tà: o indicate il file da cui vorreste eliminare l’indice, oppure spe­ci­fi­ca­te di­ret­ta­men­te il nome dell’indice in questione.

Questa è la sitassi del primo metodo:

>db.COLLECTION_NAME.dropIndex ( {KEY:1} )

La sintassi del secondo metodo, invece, appare come segue:

dropIndex ("Nome_indice")
Vai al menu prin­ci­pa­le