Inleiding tot MongoDB maken Index

MongoDB wordt gebruikt door complexe datamining, data-analysealgoritmen om de gegevens waaraan ze werken te beheren, wijzigen en ordenen. De gegevens waarmee ze omgaan zijn gigantisch en vereisen een efficiënte verwerking. Indexen in DBMS helpen bij het verbeteren van de prestaties van query's zoals het ophalen en bijwerken van gegevens. Stel je een verzameling voor met honderden documenten. Om documenten te vinden die overeenkomen met een bepaald filter, zou MongoDB het filter moeten vergelijken met alle documenten die aanwezig zijn in de collectie, wat vervelend en tijdrovend is. In plaats van documenten (velden) te indexeren, wordt de zoektijd aanzienlijk verkort. In dit onderwerp gaan we meer te weten komen over de Index voor het maken van MongoDB.

Indexen zijn gegevensstructuren die zijn verpakt met gedeeltelijke gegevensset in zichzelf. De index slaat de waarde van een bepaald veld (en) op in een ordelijke manier die bewerkingen zoals vergelijkers, evenaars en op afstand gebaseerde zoekopdrachten in opeenvolgende volgorde ondersteunt.

De basissyntaxis om index te maken

db.collectionName.createIndex(, )

KeysSleutels is een document dat een veldwaardepaar bevat waarbij het veld een indexsleutel is en waarde het type index is.

Waarde is bijvoorbeeld 1 voor het sorteren van de indexsleutel in oplopende volgorde en -1 in aflopende volgorde

optiesOptie (s) is een document dat een set opties bevat die van invloed is op het maken van indexen. Deze opties zijn optioneel.

Soorten indexen

Dit zijn de soorten indexen die hieronder worden vermeld

1. Standaard-ID

Elk document in de Mongo-collectie bevat een index

standaard genaamd "_id". Er wordt een object-ID gemaakt tijdens het maken van het document als er geen indexwaarden aanwezig zijn.

2. Eén veld

Het indexeren wordt uitgevoerd op een enkel veld en de sorteerbewerking loopt op of af terwijl MongoDB in beide richtingen kan bewegen.

Voorbeeld: db.collection.createIndex (("age": 1))

3. Samengestelde index

MongoDB ondersteunt door de gebruiker gedefinieerde indexen in meerdere velden. De volgorde van de velden in de samengestelde index is vrij aanzienlijk. Sorteervolgorde neemt van links naar rechts, prioriteit boven het eerste veld dat wordt genoemd in de samengestelde indexen is hoger dan die van het volgende veld.

Voorbeeld: db.collection.createIndex (("age": 1, "dim.h": - 1)). In dit voorbeeld worden alle documenten met het leeftijdsveld eerst gesorteerd in oplopende volgorde en vervolgens in aflopende volgorde van hoogte in dim.

4. Meervoudige index

MongoDB gebruikt Multikey Index om gegevens in een array-indeling te indexeren. Tijdens het indexeren wordt voor elk element in de array een afzonderlijke index gemaakt en worden de gegevens geïndexeerd op basis van de elementen in de array. MongoDB zorgt ervoor dat het indexveld standaard een array bevat.

5. Geospatiale index

MongoDB gebruikt Geospatial indexing om gegevens te vinden op basis van zijn locatie. Het ondersteunt twee soorten zoeken, 2D (tweedimensionaal) en 3D (driedimensionaal). Deze indexen worden gebruikt om resultaten binnen een bereik te krijgen. Het aantal zoekresultaten kan ook worden beperkt door de functie limit () te gebruiken.

Voorbeeld: db.players.find ((loc: ($ near: ($ geometry: (type: "high_school", sport: "basketball" leeftijd: (14, 17)))))). In dit voorbeeld worden alle vermeldingen gevonden van studenten die op de middelbare school zitten, basketbal spelen en tussen 14 en 17 jaar oud zijn.

6. Tekstindex

MongoDB biedt tekstindexering ter ondersteuning van zoekopdrachten in tekenreeksindeling. Tekstindex kan velden bevatten die bestaan ​​uit tekenreekselementen of een reeks tekenreekselementen.
Voorbeeld: db.movies.find (($ text: ($ search: "tom hardy"))). In dit voorbeeld worden alle documenten gevonden met acteursnamen zoals tom hanks, tom felton, tom hiddelson en robert hardy en John Hardy. MongoDB neemt de tekenreeks op die voor de zoekopdracht is opgegeven en geeft alle documenten met een volledige of gedeeltelijke zoekreeks.

7. Hashed-index

MongoDB gebruikt een gehashte index om sharding te ondersteunen. Hashing indexen berekent de hash-waarde van de indexvelden met behulp van een hash-functie. Het ondersteunt geen multi-key indexering (matrixwaarden). Hash-indexen worden gemaakt met de functie createIndex en de waarde van het indexveld moet altijd worden 'gehasht'.

Voorbeeld: db.collection.createIndex ((: "hashed")) . Om de documenten met hash-waarden te vinden, retourneert db.collection.find ((: Math.pow (2, 63))) alle documenten met hash-indexen in het bereik 2 63.

Opties voor indexering

1. Unieke index

Zoals de naam al doet vermoeden, zijn unieke indexen uniek van aard. MongoDB staat geen dubbele waarden toe als een index wordt gemaakt met de optie "uniek". Om aan te geven dat een index uniek is tijdens het maken van de index, moet het volgende formaat worden gebruikt.

db.collection.createIndex (, (unique: true)) . De unieke beperkingen kunnen ook worden opgelegd aan de samengestelde index, meervoudige index en tekstindex.

2. Gedeeltelijke index

Gedeeltelijke indexen indexeren documenten van een verzameling op basis van een specifiek filter of expressie. Omdat gedeeltelijke indexen indexeren, is slechts een subgroep van de verzamelruimte (geheugen) eisen minder en dit resulteert ook in verminderde prestaties.

Voorbeeld :

db.pupils.createIndex ((name: 1), (partialFilterExpression: (age: ($ gt: 5)))
Ondersteunde filteruitdrukkingen:

  • $ gt, $ gte, $ lt, $ lte (groter dan, groter dan of gelijk, kleiner dan en kleiner dan of gelijk)
  • $ type operatoren
  • $ bestaat: echte operatie
  • Gelijkheidsexploitant ($ eq)
  • Logisch en, of bewerkingen

3. TTL-index

TTL indexeert een speciaal soort enkele sleutelindexen die na een time-out of op een specifieke kloktijd uit de MongoDB-verzameling kunnen worden verwijderd. Sommige toepassingen die door de machine gegenereerde gegevens registreren of logs die uiteindelijk na een bepaalde periode ongeldig zouden worden, vinden dit zeer nuttig.

Voorbeeld:

db.log.createIndex (("lastModifiedDate": 1), (expireAfterSeconds: 10000))

4. Sparse index

Dunne indexen indexeren alleen de documenten die de veldwaarde van de index bevatten. Het negeert alle andere documenten die het veld niet bevatten. Standaard bevatten niet-schaarse indexen alle documenten in de collecties, met nul als de waarde voor die velden die niet aanwezig zijn.

Voorbeeld:

db.pupil.createIndex (("age": 1), (sparse: true))
De index indexeert geen documenten die niet de veldleeftijd bevatten.

5. Hoofdletterongevoelige index

Hoofdletterongevoelige indexen worden gebruikt ter ondersteuning van query's die tekenreeksvergelijkingen uitvoeren zonder rekening te houden met hoofdlettergevoeligheid.

Voorbeeld:

db.collection.createIndex (("key": 1), (collation:))

Sorteren:

Collation-document wordt gebruikt om taalregels, hoofdletters, enz. Op te geven voor stringvergelijking.

Collatie documenten bestaan ​​uit het volgende:

Conclusie - MongoDB maakt Index

Kortom, indexering is cruciaal voor een snellere uitvoering van query's en geheugenbeheer. Indexen kunnen worden gemaakt, aangepast aan de behoeften van gebruikers en verwijderd wanneer ze niet nodig zijn.

Aanbevolen artikelen

Dit is een handleiding voor het maken van Index door MongoDB. Hier bespreken we de soorten indexen en opties voor indexering samen met de voorbeelden. U kunt ook het volgende artikel bekijken voor meer informatie -

  1. MongoDB Tools
  2. Wat is MongoDB?
  3. Replicatie in MongoDB
  4. Voordelen van MongoDB