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:

forsøger at starte mongodb-serveren uden \data\db-mapper

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
oprindeligt har du en db kaldet ‘test’

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.

  1. åbn din kommandoprompt, og skrivmongod 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: CrudDBadminconfig 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.

noskl vilkår af Victoria Malaya

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.

måder data kan gemmes i en JSON

Der er tre metoder til indsættelse af data.

  1. insertOne() bruges kun til at indsætte et enkelt dokument.
  2. insertMany() bruges til at indsætte mere end et dokument.
  3. 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 locationpå dokumentet for John Doe. Så hvis du bruger find, så ser du kun for john doelocation egenskaben er vedhæftet.

dette kan være en fordel, når det kommer til Noskl databaser som MongoDB. Det giver mulighed for skalerbarhed.

succesfuldt indsat data

7. Forespørgsel data

sådan kan du forespørge alle data fra en samling:

db.myCollection.find()
resultat

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()
resultat

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" })
resultat

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.

resultat

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:

resultat

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 nameagelocation.

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.

reference: MongoDB manual

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:

aggregeringsfunktioner i databaser. ref: Tutorial Port

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();
resultat

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!



Skriv et svar

Din e-mailadresse vil ikke blive publiceret.