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.
Innholdsfortegnelse
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.
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.
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:
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.