MongoDB Indexering: createIndex() & dropIndex()
⚡ Slimme samenvatting
MongoDB Indexen slaan een geordende subset van de velden van een verzameling op, zodat query's documenten kunnen vinden zonder elk record te hoeven scannen. De methoden createIndex, getIndexes en dropIndex maken, tonen en verwijderen deze prestatiekritieke structuren.

Wat zijn MongoDB Indexen?
Indexen zijn erg belangrijk in elke database, en daarmee MongoDB Het is niet anders. Door het gebruik van indexen kunnen query's worden uitgevoerd in MongoDB wordt efficiënter.
Als je een verzameling hebt met duizenden documenten zonder indexen, en je vervolgens een query uitvoert om bepaalde documenten te vinden, dan zou dat in zo'n geval problemen opleveren. MongoDB zou de hele collectie moeten scannen om de documenten te vinden. Maar als je indexen had, MongoDB zou deze indexen gebruiken om het aantal documenten dat in de collectie moest worden doorzocht te beperken.
Indexen zijn speciale datasets die een deel van de gegevens van een verzameling opslaan. Doordat de gegevens gedeeltelijk zijn, zijn ze gemakkelijker te lezen. Deze gedeeltelijke set slaat de waarde van een specifiek veld, of een set velden, op, geordend op de waarde van het veld.
Inzicht in de impact van indexen
Hoewel de inleiding heeft aangetoond dat indexen nuttig zijn voor query's, kunnen te veel indexen andere bewerkingen, zoals invoegen, verwijderen en bijwerken, vertragen.
Als er frequent invoeg-, verwijder- en updatebewerkingen op documenten worden uitgevoerd, moeten de indexen even vaak worden aangepast, wat een extra belasting voor de collectie vormt.
Het onderstaande voorbeeld laat zien welke veldwaarden een index in een collectie kunnen vormen. Een index kan gebaseerd zijn op slechts één veld in de collectie, of op meerdere velden in de collectie.
In het onderstaande voorbeeld zijn de werknemers-ID "1" en de werknemerCode "AA"-waarden worden gebruikt om de documenten in de collectie te indexeren. Wanneer er een zoekopdracht wordt uitgevoerd, worden deze indexen gebruikt om de gewenste documenten in de collectie snel en efficiënt te vinden.
Dus zelfs als de zoekopdracht is gebaseerd op de medewerker.Code "AA", dat document zou worden teruggestuurd.
Indexen maken: createIndex()
Een index aanmaken in MongoDB wordt gedaan met behulp van de maakIndex methode.
Het volgende voorbeeld laat zien hoe je een index aan een collectie toevoegt. Stel dat we dezelfde Employee-collectie hebben met de velden "Employeeid" en "EmployeeName".
db.Employee.createIndex({Employeeid:1})
Code Uitleg:
- De maakIndex methode wordt gebruikt om een index te maken op basis van de “Employeeid” van het document.
- De parameter "1" geeft aan dat wanneer de index wordt aangemaakt met de waarden van het veld "Employeeid", deze in oplopende volgorde moeten worden gesorteerd. Houd er rekening mee dat dit iets anders is dan het veld _id (dat elk document uniek identificeert). MongoDB Wordt automatisch aangemaakt. De documenten worden nu gesorteerd op basis van het Employeeid en niet op het _id-veld.
Als de opdracht succesvol wordt uitgevoerd, wordt de volgende uitvoer weergegeven:
Output:
- De waarde van numIndexesBefore: 1 geeft het aantal veldwaarden in de indexen aan voordat de opdracht werd uitgevoerd. Elke collectie heeft het veld _id, dat ook als veldwaarde telt, dus numIndexesBefore is 1.
- De parameter numIndexesAfter: 2 geeft het aantal veldwaarden in de indexen aan nadat de opdracht is uitgevoerd.
- De uitvoer "ok: 1" geeft aan dat de bewerking succesvol was en dat de nieuwe index aan de verzameling is toegevoegd.
De bovenstaande code laat zien hoe je een index kunt maken op basis van één veldwaarde, maar je kunt ook een index maken op basis van meerdere veldwaarden. Het volgende voorbeeld laat zien hoe dit kan:
db.Employee.createIndex({Employeeid:1, EmployeeName:1})
De createIndex-methode houdt nu rekening met meerdere veldwaarden, waardoor de index wordt aangemaakt op basis van "Employeeid" en "EmployeeName". Employeeid:1 en EmployeeName:1 geven aan dat de index op deze twee veldwaarden moet worden aangemaakt, waarbij :1 een oplopende volgorde aangeeft. Dit wordt een samengestelde index genoemd.
Hoe vind je indexen: getIndexes()
Een index vinden in MongoDB wordt gedaan met behulp van de indexen ophalen methode. Het volgende voorbeeld laat zien hoe dit gedaan kan worden:
db.Employee.getIndexes()
De getIndexes-methode wordt gebruikt om alle indexen in een verzameling te vinden.
Als de opdracht succesvol wordt uitgevoerd, wordt de volgende uitvoer weergegeven:
Output:
De uitvoer retourneert een document waaruit blijkt dat er twee indexen in de collectie aanwezig zijn: het veld _id en het veld Employeeid. De aanduiding :1 geeft aan dat de veldwaarden in de index in oplopende volgorde worden aangemaakt.
Hoe indexen te verwijderen: dropIndex()
Een index verwijderen in MongoDB wordt gedaan met behulp van de dropIndex methode. Het volgende voorbeeld laat zien hoe dit gedaan kan worden:
db.Employee.dropIndex({Employeeid:1})
De dropIndex-methode ontvangt de vereiste veldwaarden die uit de index verwijderd moeten worden.
Als de opdracht succesvol wordt uitgevoerd, wordt de volgende uitvoer weergegeven:
Output:
- De waarde nIndexesWas: 3 geeft het aantal veldwaarden in de indexen aan voordat de opdracht werd uitgevoerd. Elke collectie heeft het veld _id, dat ook als veldwaarde telt.
- De ok: 1-uitvoer geeft aan dat de bewerking succesvol was en dat het veld “Employeeid” uit de index wordt verwijderd.
Om alle indexen in een collectie in één keer te verwijderen, kunt u de opdracht `dropIndexes` gebruiken. Het volgende voorbeeld laat zien hoe dit kan:
db.Employee.dropIndexes()
De dropIndexes-methode verwijdert alle indexen behalve de _id-index.
Als de opdracht succesvol wordt uitgevoerd, wordt de volgende uitvoer weergegeven:
Output:
- De waarde nIndexesWas: 2 geeft het aantal veldwaarden in de indexen aan voordat de opdracht werd uitgevoerd.
- Elke collectie heeft het veld _id, dat ook als veldwaarde geldt en niet zal worden verwijderd. MongoDBDat is wat dit bericht aangeeft.
- De ok:1-uitvoer geeft aan dat de bewerking succesvol was.










