Få et grep om MongoDB-spørringer og operasjoner ved hjelp av denne praktiske guiden.

MongoDB er en av de mest ettertraktede og beundrede NoSQL-databasene for faglig utvikling. Dens fleksibilitet, skalerbarhet og evne til å håndtere store datamengder gjør den til et toppvalg for moderne applikasjoner. Hvis du vil mestre MongoDBs vanlige spørsmål og operasjoner, er du på rett sted.

Enten du ønsker å effektivt hente og manipulere data, implementere robuste datamodeller eller bygge responsive applikasjoner, å tilegne seg en dyp forståelse av vanlige MongoDB-spørringer og operasjoner vil utvilsomt forbedre din ferdigheter.

1. Opprett eller bytt databaser

Det er enkelt å lage en database lokalt via MongoDB Shell, spesielt hvis du har satt opp en ekstern klynge. Du kan opprette en ny database i MongoDB med bruk kommando:

use db_name

Mens kommandoen ovenfor oppretter en ny database, kan du bruke den til å bytte til en eksisterende database uten å opprette en ny fra bunnen av.

2. Slipp databasen

Bytt først til databasen du vil droppe ved å bruke

instagram viewer
bruk kommando som tidligere. Slipp deretter databasen ved å bruke dropDatabase() kommando:

use db_name
db.dropDatabase()

3. Opprett en samling

For å opprette en samling, bytt til måldatabasen. Bruke createCollection() nøkkelord for å lage en ny MongoDB-samling:

db.createCollection("collection_name")

Erstatte samlingsnavn med ditt valgte samlingsnavn.

4. Sett inn dokument i en samling

Mens du sender data til en samling, kan du sette inn et enkelt dokument eller en rekke dokumenter.

Slik setter du inn et enkelt dokument:

db.collection_name.insertOne({"Name":"Idowu", "Likes":"Chess"})

Du kan også bruke metoden ovenfor for å sette inn en rekke dokumenter med én ID:

db.collection_name.insertOne([{"Name":"Idowu", "Likes":"Chess"}, {"Language": "Mongo", "is_admin": true}])

For å sette inn mange dokumenter samtidig, der hver har separate IDer, bruk sett innMange nøkkelord:

db.collection_name.insertMany([{"Name":"Idowu", "Likes":"Chess"}, {"Name": "Paul", "Likes": "Wordle"}])

5. Få alle dokumenter fra en samling

Du kan spørre etter alle dokumenter fra en samling ved å bruke finne() nøkkelord:

db.collection_name.find()

Ovennevnte returnerer alle dokumentene i den angitte samlingen:

Du kan også begrense de returnerte dataene til et spesifikt antall. For eksempel kan du bruke følgende kommando for å få bare de to første dokumentene:

db.collection_name.find().limit(2)

6. Filtrer dokumenter i en samling

Det er mange måter å filtrere dokumenter på i MongoDB. Vurder for eksempel følgende data:

Hvis du bare spør etter et spesifikt felt i et dokument, bruk finne metode:

db.collection_name.find({"Likes":"Wordle"}, {"_id":0, "Name":1})

Ovennevnte returnerer alle dokumenter hvor verdien av Liker er Wordle. Den sender bare ut navnene og ignorerer dokument-IDen.

Du kan også filtrere en samling etter en numerisk faktor. Si at du ønsker å få navnene på alle brukere over 21 år, bruk $gt operatør:

db.collection_name.find({"Likes":"Chess", "Age":{"$gt":21}}, {"_id":0, "Name":1})

Utgangen ser slik ut:

Prøv å erstatte finne med Finn én for å se hva som skjer. Det er imidlertid mange andre filtreringssøkeord:

  • $lt: Alle verdier mindre enn den spesifiserte.
  • $gte: Verdier lik eller større enn den angitte.
  • $lte: Verdier som er mindre enn eller lik den definerte.
  • $eq: Får alle verdier lik den angitte.
  • $ne: Alle verdier som ikke er lik den angitte.
  • $in: Bruk denne når du spør basert på en matrise. Den får alle verdier som samsvarer med alle elementene i matrisen. De $nin nøkkelord gjør det motsatte.

7. Sorter spørringer

Sortering hjelper til med å ordne spørringen i en bestemt 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.collection_name.find({"Likes":"Chess"}).sort({"Age":1})

For å sortere søket ovenfor i synkende rekkefølge, erstatt "1" med "-1."

db.collection_name.find({"Likes":"Chess"}).sort({"Age":-1})

8. Oppdater et dokument

MongoDB-oppdateringer krever at atomoperatører spesifiserer hvordan du vil ha oppdateringen utført. Her er en liste over ofte brukte atomoperatorer du kan pare med en oppdateringsforespørsel:

  • $sett: Legg til et nytt felt eller endre et eksisterende felt.
  • $trykk: Sett inn et nytt element i en matrise. Par den med $hver operatør for å sette inn mange elementer samtidig.
  • $trekk: Fjern et element fra en matrise. 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.collection_name.updateOne({"Name":"Sandy"}, {"$set":{"Name":"James", "email":"[email protected]"}})

Ovennevnte oppdaterer det angitte dokumentet som vist:

Å fjerne e-postfeltet er enkelt med $unset operatør:

db.collection_name.updateOne({"Name":"Sandy"}, {"$unset":{"email":"[email protected]"}})

Vurder følgende eksempeldata:

Du kan sette inn et element i den eksisterende gjenstander array-feltet ved å bruke $trykk operatør:

db.collection_name.updateOne({"Name":"Pete"}, {"$push":{"items":"Plantain"}})

Her er utgangen:

Bruke $hver operatør for å sette inn mange elementer samtidig:

db.collection_name.updateOne({"Name":"Pete"}, {"$push":{"items": {"$each":["Almond", "Melon"]}}})

Her er utgangen:

Som nevnt, $trekk operatør fjerner et element fra en matrise:

db.collection_name.updateOne({"Name":"Pete"}, {"$pull":{"items":"Plantain"}})

De oppdaterte dataene ser slik ut:

Inkluder $in nøkkelord for å fjerne mange elementer i en matrise på en gang:

db.collection_name.updateOne({"Name":"Pete"}, {"$pull":{"items": {"$in":["Almond", "Melon"]} }})

9. Slett et dokument eller et felt

De slettOne eller slettMange nøkkelord kaster et dokument fra en samling. Bruk slettOne for å fjerne et dokument basert på et spesifisert felt:

db.collection_name.deleteOne({"Name":"IDNoble"})

Hvis du ønsker å slette mange dokumenter med felles nøkler, bruk slettMange i stedet. Spørringen nedenfor sletter alle dokumenter som inneholder Sjakk som deres Liker.

db.collection.deleteMany({"Likes":"Chess"})

10. Indekseringsoperasjon

Indeksering forbedrer søkeytelsen ved å strømlinjeforme antallet dokumenter MongoDB trenger å skanne. Det er ofte best å lage en indeks på felt du spør oftere etter.

MongoDB-indeksering ligner på hvordan du bruke indekser for å optimalisere SQL-spørringer. For eksempel, for å lage en stigende indeks på Navn felt:

db.collection.createIndex({"Name":1})

Slik viser du indeksene dine:

db.collection.getIndexes()

Ovenstående er kun en ingress. Det finnes flere andre metoder for lage en indeks i MongoDB.

11. Aggregasjon

Aggregeringsrørledningen, en forbedret versjon av MapReduce, lar deg kjøre og lagre komplekse beregninger fra MongoDB. I motsetning til MapReduce, som krever at kartet og reduseringsfunksjonene skrives separat JavaScript-funksjoner, aggregering er enkel og bruker bare innebygde MongoDB-metoder.

Vurder for eksempel følgende salgsdata:

Ved å bruke MongoDBs aggregering kan du beregne og lagre det totale antallet solgte produkter for hver kategori som følger:

db.sales.aggregate([{$group:{"_id":"$Section", "totalSold":{$sum:"$Sold"}}}, {$project:{"_id":0, "totalSold":1, "Section":"$_id"}}])

Spørringen ovenfor returnerer følgende:

Master MongoDB Queries

MongoDB tilbyr mange spørringsmetoder, inkludert funksjoner for å forbedre spørringsytelsen. Uavhengig av programmeringsspråket ditt, er de ovennevnte spørringsstrukturene rudimentære for å samhandle med en MongoDB-database.

Det kan imidlertid være noen avvik i basissyntakser. For eksempel, mens noen programmeringsspråk som Python gjenkjenner slangevesker, bruker andre, inkludert JavaScript, kamelvesken. Sørg for at du undersøker hva som fungerer for den valgte teknologien.