11 MongoDB-spørsmål og operasjoner du må kjenne til

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.

DAGENS MUO-VIDEO

RULL FOR Å FORTSETTE MED INNHOLD

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

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 brukskommandoen:

 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 database

Bytt først til databasen du vil droppe ved å bruke kommandoen bruk som tidligere. Slipp deretter databasen ved å bruke dropDatabase()-kommandoen:

 use db_name
db.dropDatabase()

3. Opprett en samling

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

 db.createCollection("collection_name")

Erstatt samlingsnavn med det valgte samlingsnavnet.

  Forstå COALESCE () funksjon i SQL

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 insertMany nøkkelordet:

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

5. Få alle dokumenter fra en samling

Du kan søke etter alle dokumenter fra en samling ved å bruke søkeordet find():

 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 finnemetoden:

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

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

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

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

Utgangen ser slik ut:

Prøv å erstatte find med findOne for å se hva som skjer. Det er imidlertid mange andre filtreringssøkeord:

  • $lt: Alle verdier mindre enn den angitte.
  • $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 etter en matrise. Den får alle verdier som samsvarer med alle elementene i matrisen. Nøkkelordet $nin gjør det motsatte.
  Hvordan være vert for Minecraft Server på Vultr på mindre enn 3 minutter?

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 ut 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:

  • $set: Legg til et nytt felt eller endre et eksisterende felt.
  • $push: Sett inn et nytt element i en matrise. Par den med $each-operatøren for å sette inn mange elementer samtidig.
  • $pull: 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øren:

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

Vurder følgende eksempeldata:

Du kan sette inn et element i det eksisterende elementarrayfeltet ved å bruke $push-operatoren:

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

Her er utgangen:

Bruk $each-operatøren for å sette inn mange elementer samtidig:

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

Her er utgangen:

  Slik installerer du utvidelser i nettlesere uten en dedikert utvidelsesbutikk

Som nevnt fjerner $pull-operatøren et element fra en matrise:

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

De oppdaterte dataene ser slik ut:

Ta med søkeordet $in 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

Nøkkelordet deleteOne eller deleteMany kaster et dokument fra en samling i papirkurven. Bruk deleteOne 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 deleteMany i stedet. Spørsmålet nedenfor sletter alle dokumenter som inneholder sjakk som 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 bruker indekser for å optimalisere SQL-spørringer. For eksempel, for å lage en stigende indeks i feltet Navn:

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

Slik viser du indeksene dine:

 db.collection.getIndexes()

Ovennevnte er kun en ingress. Det er 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 skriving av kartet og reduseringsfunksjonene i separate JavaScript-funksjoner, er aggregering 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.