Bevezetés a MongoDB index létrehozásához

A MongoDB-t az összetett adatbányászat, az adatelemző algoritmusok használják az általuk dolgozott adatok kezelésére, módosítására és rendezésére. Az általuk kezelt adatok szerények és hatékony kezelést igényelnek. A DBMS indexei segítenek növelni a lekérdezések teljesítményét, például az adatok letöltése és frissítése. Képzeljen el egy olyan gyűjteményt, amelyben több száz dokumentum van. Egy adott szűrőnek megfelelő dokumentumok megtalálásához a MongoDB-nek meg kell egyeznie a szűrővel a gyűjteményben található összes dokumentummal, ami unalmas és időigényes. A dokumentumok (mezők) indexálása helyett a keresési idő jelentősen csökken. Ebben a témában megismerjük a MongoDB index létrehozását.

Az indexek olyan adatstruktúrák, amelyek részleges adathalmazt tartalmaznak. Az index egy adott mező (k) értékét a dokumentumokban olyan módon rendezi el, amely támogatja a műveleteket, például összehasonlítókat, ekvalátorokat és tartomány alapú lekérdezéseket egymás utáni sorrendben.

Az alapvető szintaxis az index létrehozásához

db.collectionName.createIndex(, )

KulcsokA Keys egy olyan mező értékpárt tartalmazó dokumentum, amelyben a mező index kulcs, az érték pedig az index típusa.

Például az érték 1, ha az indexkulcsot növekvő sorrendben rendezi, és -1 csökkenő sorrendben

OpciókAz Opció (k) egy olyan dokumentum, amely tartalmaz egy opciókészletet, amely befolyásolja az indexek létrehozását. Ezek az opciók nem kötelezőek.

Az indexek típusai

Itt találhatók az alábbiakban említett típusú indexek

1. Alapértelmezett azonosító

A Mongo gyűjtemény minden egyes dokumentuma tartalmaz egy indexet

alapértelmezett „_id”. Objektum azonosító jön létre a dokumentum létrehozása közben, ha nincs indexérték.

2. Egyetlen mező

Az indexelést egyetlen mezőben hajtják végre, és a rendezési művelet növekvő vagy csökkenő módon történik, mivel a MongoDB bármelyik irányba haladhat.

Példa: db.collection.createIndex ((„életkor”: 1))

3. Összetett index

A MongoDB több mezőben támogatja a felhasználó által definiált mutatókat. Az összetett indexben megadott mezők sorrendje meglehetősen szignifikáns. A rendezési sorrend balról jobbra halad, az összetett indexekben említett első mező elsőbbsége magasabb, mint a következő.

Példa: db.collection.createIndex ((„életkor": 1, "dim.h": - 1)). Ebben a példában az összes korosztályt tartalmazó dokumentumot először növekvő sorrendbe, majd csökkenő magasságba csökkenő sorrendbe rendezik.

4. Multikey index

A MongoDB a Multikey Index segítségével tömb formátumú adatokat indexel. Indeksálás közben a tömb egyes elemei külön indexet hoznak létre, és az adatokat a tömbben található elem (ek) alapján indexálják. A MongoDB gondoskodik arról, hogy az index mezőben alapértelmezés szerint tömb legyen-e benne.

5. Földrajzi index

A MongoDB a földrajzi térindexelést használja az adatok megkeresésére a helyük alapján. Kétféle keresést támogat: 2D (kétdimenziós) és 3D (háromdimenziós). Ezeket az indexeket egy tartományon belüli eredmények elérésére használják. A keresési eredmények számát a limit () függvény használatával is korlátozhatjuk.

Példa: db.players.find ((loc: ($ közel: ($ geometria: (type: “high_school”, sport: “basketball” életkor: (14, 17)))))). Ez a példa megtalálja a középiskolában, kosárlabdázó és 14–17 éves korosztályban részt vevő hallgatók összes bejegyzését.

6. Szöveg index

A MongoDB szöveges indexelést biztosít a string formátumú lekérdezések támogatásához. A szövegindex bármilyen mezőt tartalmazhat, amely karakterlánc elemekből vagy karakterlánc elemekből áll.
Példa: db.movies.find (($ szöveg: ($ keresés: “tom hardy”))). Ez a példa megtalálja az összes dokumentumot, amelynek színészneve van, például tom hanks, tom felton, tom hiddelson, valamint robert hardy és john hardy. A MongoDB beveszi a kereséshez megadott karakterláncot, és megadja az összes dokumentumot, amelyben teljes vagy részleges keresési karakterlánc található.

7. hasított index

A MongoDB hash indexet használ a sharding támogatására. A hash indexek hash függvény alkalmazásával kiszámítják az index mezők hash értékét. Nem támogatja a multi-key indexelést (tömbértékek). A hash indexeket a createIndex függvény hozza létre, és az index mező értékének mindig 'hashed' -nek kell lennie.

Példa: db.collection.createIndex ((: “hashed”)) . A hash értékekkel rendelkező dokumentumok megtalálásához a db.collection.find ((: Math.pow (2, 63))) minden olyan dokumentumot visszaad, amelynek hash indexe a 2 63 tartományba esik.

Az indexelés lehetőségei

1. Egyedi index

Ahogy a neve is sugallja, az egyedi mutatók jellegzetesek. A MongoDB nem engedélyezi az érték másolatát, ha az „egyedi” opcióval indexet hoznak létre. Annak meghatározásához, hogy egy index egyedi legyen-e az index létrehozása közben, a következő formátumot kell használni.

db.collection.createIndex (, (egyedi: igaz)) . Az egyedi korlátozások az összetett indexre, a többszörös indexre és a szöveges indexre is felvehetők.

2. Részleges index

A gyűjtemény indexált dokumentumainak részleges indexelése egy adott szűrő vagy kifejezés alapján. A részleges indexelés óta a gyűjtőtér (memória) igényeinek csak egy alcsoportja kevesebb, és ez szintén csökkenti a teljesítményt.

Példa :

db.pupils.createIndex ((név: 1), (részlegesFilterExpression: (életkor: ($ gt: 5))))
Támogatott kifejezések szűrése:

  • $ gt, $ gte, $ lt, $ lte (nagyobb, nagyobb vagy egyenlő, kevesebb és kevesebb vagy egyenlő)
  • $ típusú operátorok
  • $ létezik: valódi művelet
  • Egyenlőség-operátor ($ eq)
  • Logikai és, vagy műveletek

3. TTL index

A TTL egyfajta egységes kulcsindexet indexál, amelyet időtúllépés után vagy egy adott órakor törölhetünk a MongoDB gyűjteményből. Egyes alkalmazások, amelyek gépi úton generált adatokat vagy naplókat naplóznak, amelyek bizonyos idő elteltével érvénytelenek lehetnek, ezt találják. hasznos.

Példa:

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

4. Ritka index

A ritka indexek csak azokat a dokumentumokat indexelik, amelyek az index mező értékét tartalmazzák. Figyelembe veszi az összes többi dokumentumot, amely nem tartalmazza a mezőt. Alapértelmezés szerint a nem ritka indexek tartalmazzák a gyűjtemény összes dokumentumát, a null értékkel azoknak a mezőknek az értékét, amelyek nincsenek jelen.

Példa:

db.pupil.createIndex ((„életkor: 1), (ritka: igaz))
Az index nem indexeli azokat a dokumentumokat, amelyek nem tartalmazzák a mező életkorát.

5. A kis- és nagybetűket érzékeny index

A kis- és nagybetűket nem érzékeny indexeket olyan lekérdezések támogatására használják, amelyek karakterlánc-összehasonlításokat hajtanak végre a kis- és nagybetűk érzékenységének tekintetbe vétele nélkül.

Példa:

db.collection.createIndex ((„kulcs”: 1), (összehasonlítás:))

leválogatás:

Az összeválogatási dokumentum a nyelvi szabályok, a kisbetűk stb. Meghatározására szolgál a karakterlánc-összehasonlításhoz.

Az összevetési dokumentumok a következőkből állnak:

Következtetés - MongoDB hozzon létre indexet

Összefoglalva: az indexelés elengedhetetlen a lekérdezések gyorsabb végrehajtásához és a memóriakezeléshez. Az indexek létrehozhatók, a felhasználók igényei szerint módosíthatók, és szükség esetén el is dobhatók.

Ajánlott cikkek

Ez egy útmutató a MongoDB Index létrehozásához. Itt tárgyaljuk az indexek típusait és az indexelés lehetőségeit, valamint a példákat. A következő cikkben további információkat is megnézhet -

  1. MongoDB eszközök
  2. Mi az a MongoDB?
  3. Replikáció a MongoDB-ben
  4. A MongoDB előnyei