Indexen ondersteunen het efficiënt oplossen van query’s. Zonder indexen, MongoDB moet elk document van een collectie scannen om de documenten die overeenkomen met de query statement te selecteren. Deze scan is zeer inefficiënt en vereisen dat MongoDB een groot volume aan gegevens verwerkt.
Indexen zijn speciale gegevensstructuren, die een klein deel van de gegevensverzameling opslaan in een gemakkelijk te doorkruisen vorm. De index slaat de waarde van een specifiek veld of set van velden, geordend door de waarde van het veld zoals gespecificeerd in de index.
De createIndex() Methode
Om een index te creëren, moet u createIndex() methode van MongoDB te gebruiken.
Syntax
De basissyntax van createIndex() methode is als volgt().
>db.COLLECTION_NAME.createIndex({KEY:1})
Hierbij is key de naam van het veld waarop je een index wilt maken en 1 is voor oplopende volgorde. Om een index in aflopende volgorde te maken, moet u -1 gebruiken.
Example
>db.mycol.createIndex({"title":1}){"createdCollectionAutomatically" : false,"numIndexesBefore" : 1,"numIndexesAfter" : 2,"ok" : 1}>
In createIndex() methode kunt u meerdere velden doorgeven, om een index op meerdere velden te maken.
>db.mycol.createIndex({"title":1,"description":-1})>
Deze methode accepteert ook een lijst met opties (die optioneel zijn). Hieronder volgt de lijst –
Parameter | Type | Description |
---|---|---|
background | Boolean | Bouwt de index op de achtergrond zodat het bouwen van een index geen andere database activiteiten blokkeert. Specificeer true om op de achtergrond te bouwen. De standaardwaarde is false. |
unique | Boolean | Creëert een unieke index zodat de collectie geen invoegen aanvaardt van documenten waar de index sleutel of sleutels overeenkomen met een bestaande waarde in de index. Specificeer true om een unieke index te maken. De standaardwaarde is false. |
name | string | De naam van de index. Indien niet gespecificeerd, genereert MongoDB een indexnaam door de namen van de geïndexeerde velden en de sorteervolgorde samen te voegen. | sparse | Boolean | Indien waar, verwijst de index alleen naar documenten met het gespecificeerde veld. Deze indexen gebruiken minder ruimte maar gedragen zich in sommige situaties anders (met name sorteringen). De standaardwaarde is false. |
expireAfterSeconds | integer | Specifieer een waarde, in seconden, als een TTL om te regelen hoe lang MongoDB documenten in deze collectie bewaart. |
gewichten | document | Het gewicht is een getal van 1 tot 99.999 en geeft het belang van het veld ten opzichte van de andere geïndexeerde velden in termen van de score. |
default_language | string | Voor een tekst index, de taal die de lijst van stopwoorden en de regels voor de stammer en tokenizer bepaalt. De standaard waarde is Engels. |
language_override | string | Voor een tekst index, specificeer de naam van het veld in het document dat de taal bevat om de standaard taal te overschrijven. De standaard waarde is taal. |
De dropIndex() methode
U kunt een bepaalde index met behulp van de dropIndex() methode van MongoDB.
Syntax
De basis syntax van DropIndex() methode is als volgt().
>db.COLLECTION_NAME.dropIndex({KEY:1})
Hierbij is key de naam van het bestand waarop je index wilt maken en 1 is voor oplopende volgorde. Om index in aflopende volgorde te maken moet je -1 gebruiken.
Example
> db.mycol.dropIndex({"title":1}){"ok" : 0,"errmsg" : "can't find index with key: { title: 1.0 }","code" : 27,"codeName" : "IndexNotFound"}
De dropIndexes() methode
Deze methode verwijdert meerdere (opgegeven) indexen op een collectie.
Syntax
De basissyntaxis van de methode DropIndexes() is als volgt() –
>db.COLLECTION_NAME.dropIndexes()
Voorbeeld
Voorstel dat we 2 indexen hebben gemaakt in de genoemde verzameling mycol, zoals hieronder wordt getoond –
> db.mycol.createIndex({"title":1,"description":-1})
Het volgende voorbeeld verwijdert de hierboven gemaakte indexen van mycol –
>db.mycol.dropIndexes({"title":1,"description":-1}){ "nIndexesWas" : 2, "ok" : 1 }>
De methode getIndexes()
Deze methode retourneert de beschrijving van alle indexen in de verzameling.
Syntax
Hieronder volgt de basissyntax od de methode getIndexes() –
db.COLLECTION_NAME.getIndexes()
Voorbeeld
Aannemelijk is dat we 2 indexen hebben gemaakt in de genoemde mycol verzameling zoals hieronder getoond –
> db.mycol.createIndex({"title":1,"description":-1})
Het volgende voorbeeld haalt alle indexen in de verzameling mycol op –
> db.mycol.getIndexes()>