a MongoDB indexe egy speciális adatszerkezet, amely néhány dokumentummező adatait tárolja, amelyeken az index létrejön. Az indexek javítják a keresési műveletek sebességét az adatbázisban, mert a teljes dokumentum keresése helyett a keresés csak néhány mezőt tartalmazó indexeken történik. Másrészt a túl sok index akadályozhatja a beszúrási, frissítési és törlési műveletek teljesítményét az indexek által használt további írási és további adattér miatt.
Hogyan hozzunk létre indexet a MongoDB-ben
szintaxis:
db.collection_name.createIndex({field_name: 1 or -1})
az 1 érték növekvő sorrendre, a -1 pedig csökkenő sorrendre vonatkozik.
például van egy gyűjteményem studentdata
. A gyűjteményben található dokumentumok a következő mezőkkel rendelkeznek:
student_name, student_id és student_age
tegyük fel, hogy növekvő sorrendben szeretném létrehozni az indexet a student_name mezőben:
db.studentdata.createIndex({student_name: 1})
kimenet:
{ "createdCollectionAutomatically" : false, "numIndexesBefore" : 1, "numIndexesAfter" : 2, "ok" : 1}
létrehoztuk az indexet a student_name-en, ami azt jelenti, hogy ha valaki a student_name alapján keres a dokumentumban, a keresés gyorsabb lesz, mert az indexet fogják használni ehhez a kereséshez. Tehát ez fontos az index létrehozásához azon a mezőn, amelyet gyakran keresnek egy gyűjteményben.
MongoDB-az indexek keresése egy gyűjteményben
használhatjuk a getIndexes () módszert a gyűjteményen létrehozott összes index megtalálásához. Ennek a módszernek a szintaxisa:
db.collection_name.getIndexes()
tehát a studentdata
gyűjtemény indexeinek megszerzéséhez a következő parancsot kell megadni:
> db.studentdata.getIndexes()
a kimenet azt mutatja, hogy két indexünk van ebben a gyűjteményben. Az _id-en létrehozott alapértelmezett index és a student_name-en létrehozott index.
MongoDB-csepp indexek egy gyűjteményben
vagy eldobhat egy adott indexet, vagy az összes indexet.
egy adott index eldobása:
erre a célra a dropIndex() módszert használjuk.
db.collection_name.dropIndex({index_name: 1})
lets csepp az index, hogy hoztunk létre student_name
mező a gyűjteményben studentdata
. A parancs erre:
db.studentdata.dropIndex({student_name: 1})
nIndexesWas: megmutatja, hogy hány Index volt a parancs végrehajtása előtt
ok: 1: Ez azt jelenti, hogy a parancs sikeresen végrehajtásra került.
az összes index eldobása:
a gyűjtemény összes indexének eldobásához a dropIndexes() módszert használjuk.
szintaxis dropIndexs () módszer:
db.collection_name.dropIndexes()
tegyük fel, hogy el akarjuk dobni a studentdata
gyűjtemény összes indexét.
db.studentdata.dropIndexes()
a “non-_id indexek leejtése gyűjtésre” üzenet azt jelzi, hogy az alapértelmezett index _id továbbra is megmarad, és nem dobható le. Ez azt jelenti, hogy ezzel a módszerrel csak az általunk létrehozott indexeket tudjuk eldobni, a _id mezőben létrehozott alapértelmezett indexet nem.