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(, )
Kulcsok | A 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ók | Az 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 -
- MongoDB eszközök
- Mi az a MongoDB?
- Replikáció a MongoDB-ben
- A MongoDB előnyei