Zoals bij elke database zijn indexen essentiële gegevensstructuren in MongoDB. Ze bevorderen eenvoudige databasequery's en laten u een deel van uw verzameling opslaan en ordenen in unieke velden. Indexen ondersteunen ook bereikquery's zonder problemen.
Als uw app MongoDB gebruikt, wilt u de kracht van indexen benutten om uw zoekopdrachten sneller en efficiënter te maken. Dus wat zijn indexen in MongoDB en hoe kunt u ze maken?
Wat zijn indexen in MongoDB?
Met indexen in MongoDB kunt u prioriteit geven aan bepaalde velden in een document en deze later omzetten in queryparameters. Bij het maken van een verzameling maakt MongoDB een standaard ID-index aan. Maar u kunt er meer toevoegen als u hogere vragen of arrangementen nodig heeft.
Unieke indexen voorkomen ook duplicaten tijdens het invoeren van gegevens. Ze zijn handig voor het afwijzen van vermeldingen die al in de database bestaan. U kunt dus unieke indexering toepassen op bijvoorbeeld gebruikersnamen en e-mailvelden.
Indexen helpen u specifiek te pakken wat u wilt met behulp van uw gedefinieerde query-indeling in de vereiste hoeveelheid zonder een hele verzameling te scannen. Wanneer u een index maakt, kunt u aangeven hoe u uw gegevens wilt sorteren wanneer u deze opvraagt.
Als u bijvoorbeeld besluit gegevenspunten te sorteren op ingangsdatum zonder een index te gebruiken, geeft u doorgaans zoekcriteria en sorteervolgorde op.
Stel dat u leeftijden hoger dan een bepaald aantal wilt rangschikken op hun aflopende datum van invoer. Uw zoekopdracht ziet er meestal als volgt uit:
db.collectionName.find({leeftijd: {$gt: 50}}).sort({datum: -1})
Maar als u een index had op de ingangsdatums, hoefde u alleen de zoekcriteria op te geven. Dit is zo omdat u de datum al aflopend had gesorteerd tijdens het maken van de index.
In dat geval wordt de bovenstaande vraag:
db.collectionName.find({leeftijd: {$gt: 50}})
Een index maken in MongoDB
U kunt indexen maken in MongoDB met behulp van de ingebouwde shell-interface. Dus dat is wat we in deze tutorial zullen gebruiken.
Toch bestaan indexen niet alleen. Je moet hebben een database en een verzameling gemaakt voordat u een index kunt maken.
Zoals we eerder vermeldden, is een opvallend kenmerk van indexeren dat u sorteercriteria kunt specificeren tijdens het maken van een index.
Een index die leeftijd in omgekeerde volgorde rangschikt, ziet er bijvoorbeeld als volgt uit:
db.userCollection.createIndex({leeftijd: -1})
Het negatieve gehele getal (-1) in de code vertelt MongoDB om de leeftijd in omgekeerde volgorde te rangschikken wanneer u gegevens opvraagt met behulp van de leeftijd inhoudsopgave. Het is dus mogelijk dat u geen sorteervolgorde hoeft op te geven tijdens query's, omdat de index dat al afhandelt.
Om een index van hetzelfde veld oplopend te maken, vervangt u -1 met 1:
db.userCollection.createIndex({leeftijd: 1})
Hoewel er andere indextypen zijn in MongoDB, is dit hoe u de enkele en samengestelde vormen kunt maken, aangezien deze het meest worden gebruikt.
Maar voordat we verder gaan, moet u ervoor zorgen dat u een MongoDB opzetten server op uw pc. Als je dit al hebt gedaan, open dan de MongoDB-shell en volg.
Maak een enkele index in MongoDB
Enkele indexering in MongoDB is eenvoudig. Selecteer om te beginnen een database die al collecties bevat.
Zeg onze databasenaam is MUO:
gebruik MUO
Nadat u een database hebt gekozen, gebruikt u de createIndex() commando in de shell om een enkele index te maken.
Als u bijvoorbeeld een enkele gebruikersnaamindex in een verzameling wilt maken en deze wilt gebruiken om in omgekeerde volgorde te zoeken:
db.collectionName.createIndex({gebruikersnaam: -1})
Multikey-indexering in MongoDB
Multikey-indexen zijn handig voor het indexeren van een veld in een complexe gegevensarray. Een verzameling kan bijvoorbeeld complexe gegevens van gebruikers bevatten met hun informatie in een andere array. Zeg bijvoorbeeld naam, lengte en leeftijd.
U kunt als volgt een multikey-index maken op de hoogte van elke gebruiker in die array:
db.customers.createIndex({gebruiker.hoogte: 1})
De hoogte in de bovenstaande code is een subset van de gebruiker veld.
Een samengestelde index maken
Een samengestelde index bevat meer dan één index. Om bijvoorbeeld een samengestelde index van adres en producttype op een klantenverzameling te maken:
db.customer.createIndex({adres: 1, producten: 1})
Aangezien u geen naam hebt opgegeven tijdens het maken van de bovenstaande index, maakt MongoDB er standaard een aan. Maar het scheidt de naam van elke index door een onderstrepingsteken. Het is dus minder leesbaar, vooral als je meer dan twee indexen in een samenstelling hebt.
Een naam opgeven bij het maken van een samengestelde index:
db.customers.createIndex({locatie: 1, producten: 1, gewicht: -1}, {naam: "myCompundIndex"})
Alle indexen in een verzameling ophalen
Alle indexen in een verzameling bekijken:
db.collectionName.getIndexes()
De bovenstaande code voert alle indexen uit in een benoemde verzameling.
Organiseer uw database met indexen
Indexering in MongoDB vermindert de runtime-latentie bij het uitvoeren van gelijktijdige query's. Bovendien helpen ze u uw database te organiseren en toegankelijker te maken. Zoals je hebt gezien, is het maken van indexen in MongoDB tenslotte niet ingewikkeld. De voorbeelden hier zijn voldoende om u op weg te helpen met het maken van indexen. Om uw indexen in de praktijk te zien, moet u echter weten hoe query's werken in MongoDB.
MongoDB leren kennen is lastig. Ga aan de slag met CRUD.
Lees volgende
- Programmeren
- Python
- Programmeren
- database
Idowu is gepassioneerd door alles wat slimme technologie en productiviteit betreft. In zijn vrije tijd speelt hij met coderen en schakelt hij over naar het schaakbord als hij zich verveelt, maar hij vindt het ook heerlijk om af en toe uit de routine te stappen. Zijn passie om mensen de weg te wijzen in moderne technologie motiveert hem om meer te schrijven.
Abonneer op onze nieuwsbrief
Word lid van onze nieuwsbrief voor technische tips, recensies, gratis e-boeken en exclusieve deals!
Klik hier om je te abonneren