Indexen zijn erg belangrijk in elke database, en met MongoDB is het niet anders. Met het gebruik van indexen wordt het uitvoeren van queries in MongoDB efficiënter.

Als je een verzameling met duizenden documenten zonder indexen, en dan heb je een query om bepaalde documenten te vinden, dan is in een dergelijk geval MongoDB zou moeten de hele collectie scannen om de documenten te vinden. Maar als je indexen had, zou MongoDB deze indexen gebruiken om het aantal documenten dat in de collectie moest worden doorzocht te beperken.

Indexen zijn speciale gegevensverzamelingen waarin een deel van de gegevens van de verzameling wordt opgeslagen. Aangezien de gegevens gedeeltelijk zijn, wordt het gemakkelijker deze gegevens te lezen. Deze gedeeltelijke set slaat de waarde op van een specifiek veld of van een reeks velden, gerangschikt volgens de waarde van het veld.

In deze tutorial leert u –

  • Inzicht in de impact van indexen
  • Hoe indexen te maken: createIndex()
  • Hoe indexen te vinden: getindexes()
  • Hoe indexen te laten vallen: dropindex()

Inzicht in de impact van indexen

Nu, ook al hebben we uit de inleiding gezien dat indexen goed zijn voor queries, maar het hebben van te veel indexen kan andere operaties vertragen, zoals de Insert, Delete en Update operatie.

Als er vaak insert, delete en update operaties op documenten worden uitgevoerd, dan zouden de indexen zo vaak moeten veranderen, wat alleen maar een overhead voor de verzameling zou zijn.

Het onderstaande voorbeeld toont een voorbeeld van welke veldwaarden een index in een verzameling zouden kunnen vormen. Een index kan worden gebaseerd op slechts een veld in de collectie, of het kan worden gebaseerd op meerdere velden in de collectie.

In het onderstaande voorbeeld worden de velden Employeeid “1” en EmployeeCode “AA” gebruikt om de documenten in de verzameling te indexeren. Dus wanneer een query-zoekopdracht wordt uitgevoerd, zullen deze indexen worden gebruikt om snel en efficiënt de vereiste documenten in de collectie te vinden.

Dus zelfs als de zoekopdracht is gebaseerd op de EmployeeCode “AA”, zou dat document worden teruggezonden.

Hoe indexen worden gemaakt: createIndex()

Het maken van een index in MongoDB wordt gedaan met behulp van de methode “createIndex”.

Het volgende voorbeeld laat zien hoe je een index aan een collectie toevoegt. Laten we aannemen dat we hebben onze dezelfde werknemer collectie die de veldnamen van “Employeeid” en “EmployeeName” heeft.

db.Employee.createIndex({Employeeid:1})

Code Uitleg:

  1. De methode createIndex wordt gebruikt om een index te maken op basis van de “Employeeid” van het document.
  2. De parameter “1” geeft aan dat wanneer de index wordt gemaakt met de veldwaarden “Employeeid”, deze in oplopende volgorde moeten worden gesorteerd. Merk op dat dit verschillend is van het veld _id (Het id-veld wordt gebruikt om elk document in de collectie uniek te identificeren) die automatisch wordt gemaakt in de collectie door MongoDB. De documenten zullen nu worden gesorteerd op basis van de Employeeid en niet de _id veld.

Als het commando succesvol is uitgevoerd, zal de volgende Output worden getoond:

Uitvoer:

  1. De numIndexesBefore: 1 geeft het aantal Veldwaarden aan (De eigenlijke velden in de collectie) die er in de indexen waren voordat de opdracht werd uitgevoerd. Vergeet niet dat elke collectie het _id veld heeft dat ook telt als een Veld waarde voor de index. Aangezien het _id indexveld deel uitmaakt van de verzameling wanneer deze voor het eerst wordt gemaakt, is de waarde van numIndexesBefore 1.
  2. De numIndexesAfter: 2 geeft het aantal Veldwaarden aan dat er in de indexen was nadat de opdracht was uitgevoerd.
  3. Hier geeft de “ok: 1” uitvoer geeft aan dat de operatie succesvol was, en de nieuwe index is toegevoegd aan de collectie.

De bovenstaande code laat zien hoe een index te maken op basis van één veldwaarde, maar men kan ook een index maken op basis van meerdere veldwaarden.

Het volgende voorbeeld laat zien hoe dit kan worden gedaan;

db.Employee.createIndex({Employeeid:1, EmployeeName:1])

Code Uitleg:

  1. De methode createIndex houdt nu rekening met meerdere veldwaarden, waardoor de index nu wordt aangemaakt op basis van de “Employeeid” en “EmployeeName”. Met Employeeid:1 en EmployeeName:1 wordt aangegeven dat de index op deze twee veldwaarden moet worden aangemaakt, waarbij :1 aangeeft dat de index in oplopende volgorde moet worden aangemaakt.

Hoe indexen te vinden: getindexes()

Het vinden van een index in MongoDB wordt gedaan met behulp van de methode “getIndexes”.

Het volgende voorbeeld laat zien hoe dit gedaan kan worden;

db.Employee.getIndexes()

Code Uitleg:

  1. De methode getIndexes wordt gebruikt om alle indexen in een verzameling te vinden.

Als de opdracht met succes is uitgevoerd, wordt de volgende uitvoer weergegeven:

Uitvoer:

  1. De uitvoer geeft een document weer waaruit alleen blijkt dat er 2 indexen in de verzameling zijn, de ene is het veld _id, de andere is het veld id van de werknemer. De :1 geeft aan dat de veldwaarden in de index zijn gemaakt in oplopende volgorde.

Hoe indexen te laten vallen: dropindex()

Het verwijderen van een index in MongoDB wordt gedaan met behulp van de dropIndex methode.

Het volgende voorbeeld laat zien hoe dit kan worden gedaan;

db.Employee.dropIndex(Employeeid:1)

Code Uitleg:

  1. De methode dropIndex neemt de vereiste veldwaarden die uit de Index moeten worden verwijderd.

Als de opdracht met succes is uitgevoerd, wordt de volgende uitvoer weergegeven:

Uitvoer:

  1. De nIndexesWas: 3 geeft het aantal Veldwaarden aan die in de indexen aanwezig waren voordat de opdracht werd uitgevoerd. Vergeet niet dat elke collectie het veld _id heeft, dat ook telt als een veldwaarde voor de index.
  2. De uitvoer ok: 1 output geeft aan dat de operatie succesvol was, en het “Employeeid” veld is verwijderd uit de index.

Om alle indexen in een keer te verwijderen in de collectie, kan men het dropIndexes commando gebruiken.

Het volgende voorbeeld laat zien hoe dit kan worden gedaan.

db.Employee.dropIndex()

Code Uitleg:

  1. De methode dropIndexes laat alle indexen vallen, behalve de _id-index.

Als de opdracht met succes is uitgevoerd, wordt de volgende uitvoer weergegeven:

Uitvoer:

  1. De waarde nIndexesWas: 2 geeft het aantal veldwaarden aan dat in de indexen aanwezig was voordat de opdracht werd uitgevoerd.
  2. Bedenk nogmaals dat elke collectie heeft de _id veld dat ook telt als een veld waarde aan de index, en dat zal niet worden verwijderd door MongoDB en dat is wat dit bericht aangeeft.
  3. De ok: 1 output geeft aan dat de operatie succesvol was.

Samenvatting

  • Het definiëren van indexen zijn belangrijk voor het sneller en efficiënt doorzoeken van documenten in een collectie.
  • Indexen kunnen worden gemaakt met behulp van de createIndex methode. Indexen kunnen worden gemaakt op slechts een veld of meerdere veldwaarden.
  • Indexen kunnen worden gevonden met behulp van de methode getIndexes.
  • Indexen kunnen worden verwijderd met behulp van de methode dropIndex voor enkele indexen of dropIndexes voor het laten vallen van alle indexen.

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.