Som med vilken databas som helst är index viktiga datastrukturer i MongoDB. De främjar enkla databasfrågor och låter dig lagra och ordna en del av din samling i unika fält. Index stöder också intervallfrågor utan problem.
Om din app använder MongoDB vill du utnyttja kraften hos index för att göra dina frågor snabbare och effektivare. Så vad är index i MongoDB, och hur kan du skapa dem?
Vad är index i MongoDB?
Index i MongoDB låter dig prioritera vissa fält i ett dokument och omvandla dem till frågeparametrar senare. När du skapar en samling skapar MongoDB ett standard-ID-index. Men du kan lägga till fler om du har större frågor eller behov av arrangemang.
Unika index förhindrar också dubbletter under datainmatning. De är användbara för att avvisa poster som redan finns i databasen. Så du kan använda unik indexering på till exempel användarnamn och e-postfält.
Index hjälper dig att få tag i det du vill ha med ditt definierade frågeformat i önskad mängd utan att skanna en hel samling. När du skapar ett index kan du ange hur du vill att din data ska sorteras när du frågar efter den.
Om du till exempel bestämmer dig för att sortera datapunkter efter deras inmatningsdatum utan att använda ett index, kommer du vanligtvis att ange frågekriterier och sorteringsordning.
Säg att du vill ordna åldrar högre än ett visst antal efter deras fallande datum för anmälningar. Din fråga ser vanligtvis ut så här:
db.collectionName.find({ålder: {$gt: 50}}).sort({datum: -1})
Men om du hade ett index på inmatningsdatumen skulle du bara behöva ange frågekriterierna. Detta beror på att du redan skulle ha sorterat datumet fallande när du skapade indexet.
I så fall blir frågan ovan:
db.collectionName.find({ålder: {$gt: 50}})
Hur man skapar ett index i MongoDB
Du kan skapa index i MongoDB med hjälp av dess inbyggda skalgränssnitt. Så det är vad vi kommer att använda i den här handledningen.
Ändå existerar inte index ensamma. Det måste du ha skapat en databas och en samling innan du kan skapa ett index.
Som vi tidigare nämnt är en framträdande egenskap hos indexering att den låter dig ange sorteringskriterier under indexskapandet.
Till exempel, ett index som ordnar ålder i omvänd ordning ser ut så här:
db.userCollection.createIndex({ålder: -1})
Det negativa heltal (-1) i koden säger till MongoDB att ordna ålder i omvänd ordning när du frågar data med hjälp av ålder index. Därför behöver du kanske inte ange en sorteringsordning under frågor eftersom indexet redan hanterar det.
För att skapa ett index för samma fält stigande, ersätt -1 med 1:
db.userCollection.createIndex({ålder: 1})
Även om det finns andra indextyper i MongoDB, är det så här man skapar de enkla och sammansatta formerna – eftersom de är de mest använda.
Men innan vi går vidare, se till att du har gjort det skapa en MongoDB server på din PC. Om du redan har gjort det, öppna MongoDB-skalet och följ med.
Skapa ett enda index i MongoDB
Enkel indexering i MongoDB är enkel. För att börja, välj en databas som redan innehåller samlingar.
Säg att vår databas heter MUO:
använd MUO
När du väl har valt en databas använder du createIndex() kommandot i skalet för att skapa ett enda index.
Till exempel, för att skapa ett enda användarnamnsindex i en samling och använda det för att fråga i omvänd ordning:
db.collectionName.createIndex({användarnamn: -1})
Multikey-indexering i MongoDB
Multikey-index är praktiskt för att indexera ett fält i en komplex datamatris. En samling kan till exempel innehålla komplexa data om användare med deras information i en annan array. Säg till exempel namn, längd och ålder.
Du kan skapa ett multikey-index på höjden på varje användare i den arrayen så här:
db.customers.createIndex({user.height: 1})
De höjd i ovanstående kod är en delmängd av användare fält.
Skapa ett sammansatt index
Ett sammansatt index innehåller mer än ett index. För att skapa ett sammansatt index över adress och produkttyp på en kundsamling, till exempel:
db.customer.createIndex({adress: 1, produkter: 1})
Eftersom du inte angav ett namn när du skapade ovanstående index, skapar MongoDB ett som standard. Men det separerar namnet på varje index med ett understreck. Så det är mindre läsbart, särskilt om du har fler än två index i en förening.
Så här anger du ett namn när du skapar ett sammansatt index:
db.customers.createIndex({plats: 1, produkter: 1, vikt: -1}, {namn: "myCompundIndex"})
Få alla index i en samling
Så här visar du alla index i en samling:
db.collectionName.getIndex()
Ovanstående kod matar ut alla index i en namngiven samling.
Organisera din databas med index
Indexering i MongoDB minskar körningsfördröjningen vid exekvering av samtidiga frågor. Dessutom hjälper de dig att organisera din databas och göra den mer tillgänglig. Som du har sett är det trots allt inte komplicerat att skapa index i MongoDB. Exemplen här räcker för att du ska komma igång med att skapa index. Ändå, för att se dina index i praktiken, måste du veta hur sökning fungerar i MongoDB.
Att lära känna MongoDB är knepigt. Slå till marken med CRUD.
Läs Nästa
- Programmering
- Pytonorm
- Programmering
- databas
Idowu brinner för allt smart teknik och produktivitet. På fritiden leker han med kodning och byter till schackbrädet när han har tråkigt, men han älskar också att bryta sig loss från rutinen då och då. Hans passion för att visa människor vägen runt modern teknik motiverar honom att skriva mer.
Prenumerera på vårt nyhetsbrev
Gå med i vårt nyhetsbrev för tekniska tips, recensioner, gratis e-böcker och exklusiva erbjudanden!
Klicka här för att prenumerera