Utforsk de Viktigste MongoDB Spørringene og Operasjonene
MongoDB har etablert seg som en av de mest etterspurte og respekterte NoSQL-databasene i utviklingsmiljøet. Dens fleksibilitet, skalerbarhet og evne til å håndtere omfattende datamengder gjør den til et foretrukket alternativ for moderne applikasjoner. For deg som ønsker å mestre vanlige spørringer og operasjoner i MongoDB, har du kommet til rett sted.
Uansett om målet ditt er å hente og manipulere data effektivt, implementere robuste datamodeller eller bygge responsive applikasjoner, vil en inngående forståelse av vanlige MongoDB-spørringer og operasjoner utvilsomt forbedre dine ferdigheter.
1. Opprett eller Endre Databaser
Det er enkelt å opprette en database lokalt gjennom MongoDB Shell, spesielt hvis du allerede har satt opp en ekstern klynge. Du kan etablere en ny database i MongoDB ved å bruke følgende kommando:
use db_navn
Selv om kommandoen ovenfor oppretter en ny database, kan du også bruke den til å veksle til en eksisterende database uten å starte på nytt.
2. Slett Databaser
Start med å veksle til databasen du ønsker å slette ved å bruke «use» kommandoen som tidligere nevnt. Etter dette, slett databasen ved å bruke «dropDatabase()» kommandoen:
use db_navn
db.dropDatabase()
3. Etabler en Samling
For å etablere en samling, må du først bytte til den aktuelle databasen. Bruk «createCollection()» for å lage en ny MongoDB-samling:
db.createCollection("samling_navn")
Husk å erstatte «samling_navn» med det navnet du ønsker å gi samlingen din.
4. Legg til Dokumenter i en Samling
Når du overfører data til en samling, kan du legge inn enten et enkelt dokument eller flere dokumenter.
Slik legger du inn et enkelt dokument:
db.samling_navn.insertOne({"Navn":"Idowu", "Liker":"Sjakk"})
Du kan også benytte metoden over for å legge til flere dokumenter med en enkelt ID:
db.samling_navn.insertOne([{"Navn":"Idowu", "Liker":"Sjakk"}, {"Språk": "Mongo", "er_admin": true}])
For å sette inn mange dokumenter samtidig, der hvert dokument har sin egen ID, bruk «insertMany»:
db.samling_navn.insertMany([{"Navn":"Idowu", "Liker":"Sjakk"}, {"Navn": "Paul", "Liker": "Wordle"}])
5. Hent Alle Dokumenter fra en Samling
Du kan hente alle dokumenter i en samling ved å bruke «find()» kommandoen:
db.samling_navn.find()
Dette vil returnere alle dokumentene i den spesifiserte samlingen.
Du kan også begrense mengden data som returneres til et spesifikt antall. For eksempel kan du bruke følgende kommando for å hente kun de to første dokumentene:
db.samling_navn.find().limit(2)
6. Filtrer Dokumenter i en Samling
Det finnes mange metoder for å filtrere dokumenter i MongoDB. La oss se på følgende datasett:
Hvis du kun er ute etter et spesifikt felt i et dokument, bruk «find» metoden:
db.samling_navn.find({"Liker":"Wordle"}, {"_id":0, "Navn":1})
Denne kommandoen returnerer alle dokumenter hvor «Liker» har verdien «Wordle». Den sender kun ut navnene, og ignorerer dokument-IDen.
Du kan også filtrere en samling basert på en numerisk faktor. For eksempel, for å hente ut navnene på alle brukere over 21 år, bruk «$gt»-operatoren:
db.samling_navn.find({"Liker":"Sjakk", "Alder":{"$gt":21}}, {"_id":0, "Navn":1})
Resultatet vil se slik ut:
Prøv å erstatte «find» med «findOne» for å se hva som skjer. Det finnes imidlertid mange flere filtreringskommandoer:
- $lt: Henter alle verdier som er mindre enn den angitte.
- $gte: Verdier lik eller større enn den spesifiserte.
- $lte: Verdier som er mindre enn eller lik den definerte.
- $eq: Henter alle verdier som er lik den angitte.
- $ne: Alle verdier som ikke er lik den angitte.
- $in: Bruk denne når du spør etter et array. Den henter alle verdier som samsvarer med elementene i arrayet. Kommandoen «$nin» gjør det motsatte.
7. Sorter Spørringer
Sortering bidrar til å organisere spørringen i en spesifikk rekkefølge. Du kan sortere i synkende eller stigende rekkefølge. Husk at sortering krever en numerisk referanse.
For eksempel, for å sortere i stigende rekkefølge:
db.samling_navn.find({"Liker":"Sjakk"}).sort({"Alder":1})
For å sortere resultatet ovenfor i synkende rekkefølge, erstatt «1» med «-1».
db.samling_navn.find({"Liker":"Sjakk"}).sort({"Alder":-1})
8. Oppdater et Dokument
MongoDB-oppdateringer krever at atomoperatører spesifiserer hvordan du ønsker oppdateringen utført. Her er en liste over ofte brukte atomoperatorer som du kan bruke i en oppdateringsforespørsel:
- $set: Legg til et nytt felt, eller endre et eksisterende.
- $push: Sett inn et nytt element i et array. Par den med «$each»-operatoren for å sette inn mange elementer samtidig.
- $pull: Fjern et element fra et array. Bruk den med «$in» for å fjerne mange elementer på en gang.
- $unset: Fjern et felt fra et dokument.
For å oppdatere et dokument og legge til et nytt felt, for eksempel:
db.samling_navn.updateOne({"Navn":"Sandy"}, {"$set":{"Navn":"James", "email":"[email protected]"}})
Kommandoen over oppdaterer det spesifiserte dokumentet som vist:
Å fjerne e-postfeltet er enkelt med «$unset»-operatoren:
db.samling_navn.updateOne({"Navn":"Sandy"}, {"$unset":{"email":"[email protected]"}})
La oss se på følgende eksempeldata:
Du kan legge til et element i det eksisterende «items» array-feltet ved hjelp av «$push»-operatoren:
db.samling_navn.updateOne({"Navn":"Pete"}, {"$push":{"items":"Plantain"}})
Her er resultatet:
Bruk «$each»-operatoren for å sette inn flere elementer samtidig:
db.samling_navn.updateOne({"Navn":"Pete"}, {"$push":{"items": {"$each":["Almond", "Melon"]}}})
Resultatet:
Som nevnt, fjerner «$pull»-operatoren et element fra et array:
db.samling_navn.updateOne({"Navn":"Pete"}, {"$pull":{"items":"Plantain"}})
De oppdaterte dataene ser slik ut:
Inkluder kommandoen «$in» for å fjerne flere elementer i et array samtidig:
db.samling_navn.updateOne({"Navn":"Pete"}, {"$pull":{"items": {"$in":["Almond", "Melon"]} }})
9. Slett et Dokument eller et Felt
Kommandoene «deleteOne» eller «deleteMany» sletter et dokument fra en samling. Bruk «deleteOne» for å fjerne et dokument basert på et spesifikt felt:
db.samling_navn.deleteOne({"Navn":"IDNoble"})
Hvis du ønsker å slette flere dokumenter med felles nøkler, bruk «deleteMany» i stedet. Spørringen nedenfor sletter alle dokumenter som inneholder «Sjakk» i «Liker».
db.samling.deleteMany({"Liker":"Sjakk"})
10. Indeksering
Indeksering forbedrer ytelsen ved søk ved å redusere antall dokumenter MongoDB må skanne. Det er ofte best å lage en indeks på de feltene du oftest søker etter.
MongoDB-indeksering ligner på hvordan indekser brukes for å optimalisere SQL-spørringer. For eksempel, for å lage en stigende indeks for «Navn»-feltet:
db.samling.createIndex({"Navn":1})
Slik viser du indeksene dine:
db.samling.getIndexes()
Dette er bare en introduksjon, det finnes mange flere metoder for å lage en indeks i MongoDB.
11. Aggregering
Aggregeringsrørledningen, en forbedret versjon av MapReduce, lar deg kjøre og lagre komplekse beregninger fra MongoDB. I motsetning til MapReduce, som krever at du skriver «map» og «reduce» funksjonene i separate JavaScript-funksjoner, er aggregering enkelt og bruker bare innebygde MongoDB-metoder.
La oss se på følgende salgsdata:
Ved å bruke MongoDBs aggregering, kan du beregne og lagre det totale antallet produkter som selges for hver kategori som følger:
db.sales.aggregate([{$group:{"_id":"$Section", "totalSolgt":{$sum:"$Solgt"}}}, {$project:{"_id":0, "totalSolgt":1, "Seksjon":"$_id"}}])
Spørringen ovenfor vil returnere følgende:
Mestre MongoDB Spørringer
MongoDB tilbyr mange spørringsmetoder, inkludert funksjoner for å forbedre ytelsen ved spørringer. Uavhengig av programmeringsspråket du bruker, er strukturene ovenfor grunnleggende for å samhandle med en MongoDB-database.
Det kan imidlertid være noen avvik i de grunnleggende syntaksene. For eksempel, mens noen programmeringsspråk som Python gjenkjenner «snake_case», bruker andre, inkludert JavaScript, «camelCase». Sørg for at du undersøker hva som fungerer best for den valgte teknologien.