Mester MongoDB: 11 viktige spørringer og operasjoner

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.