Hvordan komme i gang med MongoDB på 10 minutter

MongoDB er en rik dokumentorientert NoSQL-database.

Hvis du er en helt nybegynner for NoSQL, anbefaler jeg at du tar en rask titt på NoSQL-artikkelen min som ble publisert tidligere.

I dag ønsket jeg å dele noen av de grunnleggende tingene om MongoDB-kommandoer som spørring, filtrering av data, sletting, oppdatering og så videre.

Ok, nok av samtalen, la oss komme på jobb!

Konfigurasjon?

For å kunne jobbe med MongoDB, må du først installere MongoDB på datamaskinen din. For å gjøre dette, besøk det offisielle nedlastingssenteret og last ned versjonen for ditt spesifikke operativsystem. Her har jeg brukt Windows.

Etter å ha lastet ned MongoDB-serveroppsettet, går du gjennom en "neste etter neste" installasjonsprosess. Når du er ferdig, gå over til C-stasjonen der du har installert MongoDB. Gå til programfiler og velg MongoDB-katalogen.

C: -> Program Files -> MongoDB -> Server -> 4.0(version) -> bin

I papirkurven finner du et interessant par kjørbare filer.

  • mongod
  • mongo

La oss snakke om disse to filene.

Mongod står for "Mongo Daemon". mongod er en bakgrunnsprosess som brukes av MongoDB. Hovedformålet med mongod er å administrere alle MongoDB serveroppgaver. For eksempel å godta forespørsler, svare på klient og minneadministrasjon.

mongo er et kommandolinjeskall som kan samhandle med klienten (for eksempel systemadministratorer og utviklere).

La oss nå se hvordan vi kan få denne serveren i gang. For å gjøre det på Windows, må du først opprette et par kataloger i C-stasjonen. Åpne ledeteksten i C-stasjonen og gjør følgende:

C:\> mkdir data/dbC:\> cd dataC:\> mkdir db

Formålet med disse katalogene er at MongoDB krever en mappe for å lagre all data. MongoDBs standard datakatalogbane er /data/dbpå stasjonen. Derfor er det nødvendig at vi gir disse katalogene slik.

Hvis du starter MongoDB-serveren uten disse katalogene, vil du sannsynligvis se følgende feil:

Etter å ha opprettet disse to filene, gå over til bin-mappen du har i mongodb-katalogen din, og åpne skallet ditt i den. Kjør følgende kommando:

mongod

Voilà! Nå er MongoDB-serveren vår i gang! ?

For å kunne jobbe med denne serveren trenger vi en megler. Så åpne et nytt kommandovindu i bindemappen og kjør følgende kommando:

mongo

Etter å ha kjørt denne kommandoen, naviger til skallet som vi kjørte mongod-kommandoen (som er serveren vår). Du vil se en "tilkobling akseptert" melding på slutten. Det betyr at installasjonen og konfigurasjonen vår er vellykket!

Bare løp bare i mongoskallet:

db

Sette opp miljøvariabler

For å spare tid kan du sette opp miljøvariablene. I Windows gjøres dette ved å følge menyene nedenfor:

Advanced System Settings -> Environment Variables -> Path(Under System Variables) -> Edit

Bare kopier banen til papirkurvmappen vår og trykk OK! I mitt tilfelle er detC:\Program Files\MongoDB\Server\4.0\bin

Nå er du klar!

Jobber med MongoDB

Det er en rekke GUIer (grafisk brukergrensesnitt) for å jobbe med MongoDB-server som MongoDB Compass, Studio 3T og så videre.

De gir et grafisk grensesnitt, slik at du enkelt kan jobbe med databasen din og utføre spørsmål i stedet for å bruke et skall og skrive spørsmål manuelt.

Men i denne artikkelen bruker vi ledeteksten til å gjøre vårt arbeid.

Nå er det på tide for oss å dykke inn i MongoDB-kommandoer som vil hjelpe deg med å bruke dine fremtidige prosjekter.

  1. Åpne ledeteksten og skriv mongodfor å starte MongoDB-serveren.

2. Åpne et nytt skall og skriv mongofor å koble til MongoDB-databaseserveren.

1. Finne den gjeldende databasen du er i

db

Denne kommandoen viser den gjeldende databasen du er i. testEr den opprinnelige databasen som kommer som standard.

2. Liste over databaser

show databases

For øyeblikket har jeg fire databaser. De er: CrudDB, admin, configog local.

3. Gå til en bestemt database

use 

Her har jeg flyttet til localdatabasen. Du kan sjekke dette hvis du prøver kommandoendbfor å skrive ut det gjeldende databasenavnet.

4. Opprette en database

Med RDBMS (Relational Database Management Systems) har vi databaser, tabeller, rader og kolonner.

Men i NoSQL-databaser, som MongoDB, lagres data i BSON-format (en binær versjon av JSON). De lagres i strukturer som kalles “samlinger”.

I SQL-databaser ligner disse på Tabeller.

Ok, la oss snakke om hvordan vi lager en database i mongo-skallet.

use 

Vent, vi hadde denne kommandoen før! Hvorfor bruker jeg den igjen ?!

Hvis databasen din allerede er til stede på MongoDB-serveren, bruker du den kommandoen til databasen din.

Men hvis databasen ikke allerede er til stede, vil MongoDB-serveren opprette databasen for deg. Deretter vil den navigere inn i den.

Etter å ha opprettet en ny database, show databasevil ikke kjøring av kommandoen vise den nyopprettede databasen. Dette skyldes at inntil den har noen data (dokumenter), vil den ikke vises i db-listen din.

5. Opprette en samling

Naviger inn i den nyopprettede databasen din med usekommando.

Egentlig er det to måter å lage en samling på. La oss se begge deler.

En måte er å sette inn data i samlingen:

db.myCollection.insert({"name": "john", "age" : 22, "location": "colombo"})

Dette kommer til å lage samlingen din myCollectionselv om samlingen ikke eksisterer. Deretter vil den sette inn et dokument mednameog age. Dette er samlinger uten tak.

Den andre måten er vist nedenfor:

2.1 Lage en samling uten tak

db.createCollection("myCollection")

2.2 Opprette en avkortet samling

db.createCollection("mySecondCollection", {capped : true, size : 2, max : 2})

På denne måten skal du lage en samling uten å sette inn data.

En "avkortet samling" har et maksimalt antall dokumenter som forhindrer overfylte dokumenter.

I dette eksemplet har jeg aktivert capping ved å sette verdien til true.

Dette size : 2betyr en grense på to megabyte, og max: 2setter maksimalt antall dokumenter til to.

Nå hvis du prøver å sette inn mer enn to dokumenter i mySecondCollection og bruke findkommandoen (som vi snart vil snakke om), ser du bare de sist innlagte dokumentene. Husk at dette ikke betyr at det aller første dokumentet er slettet - det vises bare ikke.

6. Sette inn data

Vi kan sette inn data i en ny samling, eller til en samling som er opprettet tidligere.

Det er tre metoder for å sette inn data.

  1. insertOne() brukes kun til å sette inn et enkelt dokument.
  2. insertMany() brukes til å sette inn mer enn ett dokument.
  3. insert() brukes til å sette inn dokumenter så mange du vil.

Nedenfor er noen eksempler:

  • insertOne ()
db.myCollection.insertOne( { "name": "navindu", "age": 22 } )
  • insertMany ()
db.myCollection.insertMany([ { "name": "navindu", "age": 22 }, { "name": "kavindu", "age": 20 }, { "name": "john doe", "age": 25, "location": "colombo" } ])

Den insert()metode er lik den insertMany()metoden.

Legg også merke til at vi har satt inn en ny eiendom som heter locationpå dokumentet for John Doe. Så hvis dubrukfind, så ser du bare forjohn doe de locationeiendommen er vedlagt.

Dette kan være en fordel når det gjelder NoSQL-databaser som MongoDB. Det muliggjør skalerbarhet.

7. Spørring av data

Slik kan du spørre om alle data fra en samling:

db.myCollection.find()

Hvis du vil se disse dataene på en renere måte, må du bare legge til .pretty()til slutten av det. Dette viser dokumentet i ganske trykt JSON-format.

db.myCollection.find().pretty()

Vent ... I disse eksemplene la du merke til noe sånt _id? Hvordan kom det dit?

Vel, når du setter inn et dokument, legger MongoDB automatisk til et _id felt som unikt identifiserer hvert dokument. Hvis du ikke vil at den skal vises, kan du bare kjøre følgende kommando

db.myCollection.find({}, _id: 0).pretty()

Deretter ser vi på filtreringsdata.

Hvis du vil vise et bestemt dokument, kan du angi en enkelt detalj i dokumentet du vil skal vises.

db.myCollection.find( { name: "john" } )

La oss si at du bare vil vise personer som er under 25 år. Du kan bruke $lttil å filtrere etter dette.

db.myCollection.find( { age : {$lt : 25} } )

Tilsvarende $gtstår for større enn, $lteer "mindre enn eller lik", $gteer "større enn eller lik" og $neer "ikke lik".

8. Oppdatering av dokumenter

La oss si at du vil oppdatere noens adresse eller alder, hvordan kan du gjøre det? Vel, se neste eksempel:

db.myCollection.update({age : 20}, {$set: {age: 23}})

Det første argumentet er feltet for hvilket dokument du vil oppdatere. Her spesifiserer jeg agefor enkelheten. I produksjonsmiljø kan du bruke noe som _idfeltet.

Det er alltid bedre å bruke noe som _idå oppdatere en unik rad. Dette er fordi flere felt kan ha samme ageog name. Derfor, hvis du oppdaterer en enkelt rad, vil det påvirke alle radene som har samme navn og alder.

Hvis du oppdaterer et dokument på denne måten med en ny egenskap, la oss locationfor eksempel si at dokumentet vil bli oppdatert med det nye attributtet. Og hvis du gjør a find, blir resultatet:

Hvis du trenger å fjerne en eiendom fra et enkelt dokument, kan du gjøre noe som dette (la oss si at du vil ageå være borte):

db.myCollection.update({name: "navindu"}, {$unset: age});

9. Fjerne et dokument

Som jeg har nevnt tidligere, når du oppdaterer eller sletter et dokument, trenger du bare angi _idikke bare name, age, location.

db.myCollection.remove({name: "navindu"});

10. Fjerne en samling

db.myCollection.remove({});

Merk, dette er ikke lik drop()metoden. Forskjellen drop()brukes til å fjerne alle dokumentene i en samling, men remove()metoden brukes til å slette alle dokumentene sammen med selve samlingen.

Logiske operatører

MongoDB gir logiske operatører. Bildet nedenfor oppsummerer de forskjellige typene logiske operatører.

La oss si at du vil vise personer som er under 25 år, og som også har Colombo. Hva vi kunne gjøre?

Vi kan bruke $andoperatør!

db.myCollection.find({$and:[{age : {$lt : 25}}, {location: "colombo"}]});

Sist men ikke minst, la oss snakke omaggregering.

Aggregering

En rask påminnelse om hva vi lærte om aggregeringsfunksjoner i SQL-databaser:

Enkelt sagt, aggregering grupperer verdier fra flere dokumenter og oppsummerer dem på en eller annen måte.

Tenk deg om vi hadde mannlige og kvinnelige studenter i en recordBooksamling, og vi vil ha en total telling på hver av dem. For å få summen av menn og kvinner, kunne vi bruke den $groupsamlede funksjonen.

db.recordBook.aggregate([ { $group : {_id : "$gender", result: {$sum: 1}} } ]);

Innpakning

Så vi har diskutert det grunnleggende om MongoDB som du kanskje trenger i fremtiden for å bygge en applikasjon. Jeg håper du likte denne artikkelen - takk for at du leser!

Hvis du har spørsmål angående denne opplæringen, er du velkommen til å kommentere i kommentarfeltet nedenfor eller kontakte meg på Facebook eller Twitter eller Instagram.

Ser dere i neste artikkel! ❤️ ✌?

Lenke til min forrige artikkel: NoSQL