Sådan kommer du i gang med MongoDB på 10 minutter
af Navindu Jayatilake
MongoDB er en rig dokumentorienteret Noskl-database.
Hvis du er en komplet nybegynder til Noskl, anbefaler jeg dig at kigge hurtigt på min Noskl-artikel, der tidligere er offentliggjort.
i dag ønskede jeg at dele nogle af de grundlæggende ting om MongoDB kommandoer som forespørgsel, filtrering af data, sletning, opdatering og så videre.
Okay, nok af samtalen, lad os komme på arbejde!
konfiguration ?
for at arbejde med MongoDB skal du først installere MongoDB på din computer. For at gøre dette skal du besøge det officielle overførselscenter og hente versionen til dit specifikke operativsystem. Her har jeg brugt vinduer.
Når du har hentet MongoDB community server setup, gennemgår du en ‘næste efter næste’ installationsproces. Når du er færdig, skal du gå over til C-drevet, hvor du har installeret MongoDB. Gå til programfiler, og vælg MongoDB-biblioteket.
C: -> Program Files -> MongoDB -> Server -> 4.0(version) -> bin
i bin-mappen finder du et interessant par eksekverbare filer.
- mongod
- mongo
lad os tale om disse to filer.
mongod står for”Mongo Daemon”. mongod er en baggrundsproces, der bruges af MongoDB. Hovedformålet med mongod er at styre alle MongoDB server opgaver. For eksempel at acceptere anmodninger, reagere på klient og hukommelsesstyring.
mongo er en kommandolinjeskal, der kan interagere med klienten (for eksempel systemadministratorer og udviklere).
lad os nu se, hvordan vi kan få denne server i gang. For at gøre det på vinduer skal du først oprette et par mapper i dit C-drev. Åbn din kommandoprompt inde i dit C-drev, og gør følgende:
C:\> mkdir data/dbC:\> cd dataC:\> mkdir db
formålet med disse mapper er MongoDB kræver en mappe til at gemme alle data. Mongodbs standarddatakatalogsti er /data/db
på drevet. Derfor er det nødvendigt, at vi leverer disse mapper som sådan.
Hvis du starter MongoDB-serveren uden disse mapper, vil du sandsynligvis se følgende fejl:
Når du har oprettet disse to filer, skal du gå over igen til den bin-mappe, du har i din mongodb-mappe, og åbne din skal inde i det. Kør følgende kommando:
mongod
Voil list! Nu er vores MongoDB-server i gang! ?
for at arbejde med denne server har vi brug for en mægler. Så åbn et andet kommandovindue inde i bind-mappen, og kør følgende kommando:
mongo
Når du har kørt denne kommando, skal du navigere til skallen, som vi kørte mongod-kommandoen (som er vores server). Du vil se en ’tilslutning accepteret’ besked i slutningen. Det betyder, at vores installation og konfiguration er vellykket!
bare kør i mongo shell:
db
opsætning af miljøvariabler
for at spare tid kan du konfigurere dine miljøvariabler. I vinduer gøres dette ved at følge menuerne nedenfor:
Advanced System Settings -> Environment Variables -> Path(Under System Variables) -> Edit
kopier blot stien til vores bin-mappe og tryk på OK! I mit tilfælde er det C:\Program Files\MongoDB\Server\4.0\bin
nu er du klar!
arbejde med MongoDB
der er en flok GUI ‘ er (grafisk brugergrænseflade) til at arbejde med MongoDB-server som MongoDB Compass, Studio 3T og så videre.
de giver en grafisk grænseflade, så du nemt kan arbejde med din database og udføre forespørgsler i stedet for at bruge en shell og skrive forespørgsler manuelt.
men i denne artikel bruger vi kommandoprompt til at udføre vores arbejde.
nu er det tid for os at dykke ned i MongoDB kommandoer, der vil hjælpe dig til at bruge med dine fremtidige projekter.
- åbn din kommandoprompt, og skriv
mongod
for at starte MongoDB-serveren.
2. Åbn en anden skal og skriv mongo
for at oprette forbindelse til MongoDB databaseserver.
1. Find den aktuelle database, du er i
db
denne kommando viser den aktuelle database, du er i. test
er den oprindelige database, der kommer som standard.
2. Listing databaser
show databases
Jeg har i øjeblikket fire databaser. De er: CrudDB
admin
config
og local
.
3. Gå til en bestemt database
use <your_db_name>
Her har jeg flyttet til local
database. Du kan kontrollere dette, hvis du prøver kommandoen db
for at udskrive det aktuelle databasenavn.
4. Oprettelse af en Database
med RDBMS (Relational Database Management Systems) har vi databaser, tabeller, rækker og kolonner.MongoDB, gemmes data i BSON-format (en binær version af JSON). De opbevares i strukturer kaldet “samlinger”.
i databaserne svarer disse til tabeller.
okay, lad os tale om, hvordan vi opretter en database i Mongo shell.
use <your_db_name>
vent, vi havde denne kommando før! Hvorfor bruger jeg det igen?!
i MongoDB server, hvis din database er til stede allerede, ved hjælp af denne kommando vil navigere ind i din database.
men hvis databasen ikke allerede er til stede, vil MongoDB server oprette databasen for dig. Derefter, det vil navigere ind i det.
Når du har oprettet en ny database, kører kommandoen show database
viser ikke din nyoprettede database. Dette skyldes, at indtil det har nogen data (dokumenter) i det, vil det ikke blive vist i din db-liste.
5. Oprettelse af en samling
Naviger ind i din nyoprettede database med kommandoenuse
.
faktisk er der to måder at oprette en samling på. Lad os se begge dele.
en måde er at indsætte data i samlingen:
db.myCollection.insert({"name": "john", "age" : 22, "location": "colombo"})
Dette vil oprette din samling myCollection
selvom samlingen ikke findes. Derefter vil det indsætte et dokument med name
og age
. Disse er ikke-begrænsede samlinger.
den anden vej er vist nedenfor:
2.1 Oprettelse af en ikke-begrænset samling
db.createCollection("myCollection")
2.2 oprettelse af en begrænset samling
db.createCollection("mySecondCollection", {capped : true, size : 2, max : 2})
på denne måde skal du oprette en samling uden at indsætte data.
en “begrænset samling” har et maksimalt antal dokumenter, der forhindrer overfyldte dokumenter.
i dette eksempel har jeg aktiveret capping ved at indstille dens værdi til true
.
size : 2
betyder en grænse på to megabyte, ogmax: 2
indstiller det maksimale antal dokumenter til to.
nu, hvis du prøver at indsætte mere end to dokumenter tilmySecondCollection
og bruge kommandoenfind
(som vi snart vil tale om), vil du kun se de senest indsatte dokumenter. Husk, at dette ikke betyder, at det allerførste dokument er blevet slettet — det vises bare ikke.
6. Indsættelse af Data
Vi kan indsætte data i en ny samling eller i en samling, der er oprettet før.
Der er tre metoder til indsættelse af data.
-
insertOne()
bruges kun til at indsætte et enkelt dokument. -
insertMany()
bruges til at indsætte mere end et dokument. -
insert()
bruges til at indsætte dokumenter så mange som du vil.
nedenfor er nogle eksempler:
- insertOne()
db.myCollection.insertOne( { "name": "navindu", "age": 22 })
- insertMany()
db.myCollection.insertMany()
insert()
metoden ligner insertMany()
metode.
Bemærk også, at vi har indsat en ny ejendom kaldet location
på dokumentet for John Doe
. Så hvis du bruger find
, så ser du kun for john doe
location
egenskaben er vedhæftet.
dette kan være en fordel, når det kommer til Noskl databaser som MongoDB. Det giver mulighed for skalerbarhed.
7. Forespørgsel data
sådan kan du forespørge alle data fra en samling:
db.myCollection.find()
Hvis du vil se disse data på en renere måde, skal du blot tilføje .pretty()
til slutningen af det. Dette viser dokument i smukt trykt JSON-format.
db.myCollection.find().pretty()
Wait…In disse eksempler bemærkede du bare noget som _id
? Hvordan kom det derhen?
Nå, når du indsætter et dokument, tilføjer MongoDB automatisk et_id
felt, der entydigt identificerer hvert dokument. Hvis du ikke vil have det vist, skal du bare køre følgende kommando
db.myCollection.find({}, _id: 0).pretty()
næste, vi ser på filtrering af data.
Hvis du vil vise et bestemt dokument, kan du angive en enkelt detalje i det dokument, du vil have vist.
db.myCollection.find( { name: "john" })
lad os sige, at du kun vil vise personer, hvis alder er mindre end 25. Du kan bruge $lt
til at filtrere efter dette.
db.myCollection.find( { age : {$lt : 25} })
tilsvarende $gt
står for større end, $lte
er “mindre end eller lig med”, $gte
er “større end eller lig med” og $ne
er “ikke lige”.
8. Opdatering af dokumenter
lad os sige, at du vil opdatere en persons adresse eller alder, hvordan kan du gøre det? Nå, se det næste eksempel:
db.myCollection.update({age : 20}, {$set: {age: 23}})
det første argument er feltet for hvilket dokument du vil opdatere. Her angiver jeg age
for enkelheden. I produktionsmiljø kan du bruge noget som _id
feltet.
det er altid bedre at bruge noget som _id
for at opdatere en unik række. Dette skyldes, at flere felter kan have samme age
og name
. Derfor, hvis du opdaterer en enkelt række, vil det påvirke alle rækker, der har samme navn og alder.
Hvis du opdaterer et dokument på denne måde med en ny ejendom, lad os sigelocation
for eksempel, dokumentet opdateres med den nye attribut. Og hvis du gør en find
, så bliver resultatet:
Hvis du har brug for at fjerne en ejendom fra et enkelt dokument, kan du gøre noget som dette (lad os sige, at du vil age
at være væk):
db.myCollection.update({name: "navindu"}, {$unset: age});
9. Fjernelse af et dokument
som jeg har nævnt tidligere, når du opdaterer eller sletter et dokument, skal du bare angive _id
ikke bare name
age
location
.
db.myCollection.remove({name: "navindu"});
10. Fjernelse af en samling
db.myCollection.remove({});
Bemærk, Dette er ikke lig meddrop()
metode. Forskellen er drop()
bruges til at fjerne alle dokumenter inde i en samling, men remove()
– metoden bruges til at slette alle dokumenter sammen med selve samlingen.
logiske operatorer
MongoDB giver logiske operatorer. Billedet nedenfor opsummerer de forskellige typer logiske operatorer.
lad os sige, at du vil vise folk, hvis alder er mindre end 25, og også hvis placering er Colombo. Hvad kan vi gøre?
Vi kan bruge$and
operatør!
db.myCollection.find({$and:});
sidst men ikke mindst, lad os tale om aggregering.
aggregering
en hurtig påmindelse om, hvad vi lærte om aggregeringsfunktioner i databaser:
kort sagt, aggregering grupper værdier fra flere dokumenter og opsummerer dem på en eller anden måde.
Forestil dig, om vi havde mandlige og kvindelige studerende i enrecordBook
samling, og vi ønsker en samlet optælling på hver af dem. For at få summen af mænd og kvinder kunne vi bruge $group
aggregatfunktion.
db.recordBook.aggregate();
indpakning af
så vi har diskuteret grundlæggende om MongoDB, Som du muligvis har brug for i fremtiden for at opbygge en applikation. Jeg håber du nød denne artikel-tak for læsning!