Så här kommer du igång med MongoDB på 10 minuter

av Navindu Jayatilake

MongoDB är en rik dokumentorienterad NoSQL-databas.

Om du är en nybörjare till NoSQL rekommenderar jag att du snabbt tittar på min NoSQL-artikel som publicerats tidigare.

Idag ville jag dela några av de grundläggande sakerna om MongoDB-kommandon som att fråga, filtrera data, radera, uppdatera och så vidare.

okej, nog av prat, låt oss komma till jobbet!

konfiguration ?

För att kunna arbeta med MongoDB måste du först installera MongoDB på din dator. För att göra detta, besök det officiella nedladdningscentret och ladda ner versionen för ditt specifika operativsystem. Här har jag använt Windows.

När du har laddat ner MongoDB community server setup, går du igenom en’ nästa efter nästa ’ installationsprocess. När du är klar, gå över till C-enheten där du har installerat MongoDB. Gå till programfiler och välj MongoDB-katalogen.

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

i bin-katalogen hittar du ett intressant par körbara filer.

  • mongod
  • mongo

låt oss prata om dessa två filer.

mongod står för”Mongo Daemon”. mongod är en bakgrundsprocess som används av MongoDB. Huvudsyftet med mongod är att hantera alla MongoDB – serveruppgifter. Till exempel acceptera förfrågningar, svara på klient och minneshantering.

mongo är ett kommandoradsskal som kan interagera med klienten (till exempel systemadministratörer och utvecklare).

låt oss nu se hur vi kan få den här servern igång. För att göra det på Windows måste du först skapa ett par kataloger i din C-enhet. Öppna kommandotolken i din C-enhet och gör följande:

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

syftet med dessa kataloger är MongoDB kräver en mapp för att lagra all data. MongoDB: s standarddatakatalogväg är /data/db på enheten. Därför är det nödvändigt att vi tillhandahåller dessa kataloger så.

om du startar MongoDB-servern utan dessa kataloger ser du förmodligen följande fel:

försöker starta mongodb-servern utan \data\db-kataloger

När du har skapat dessa två filer, gå igen till bin-mappen du har i din mongodb-katalog och öppna ditt skal inuti det. Kör följande kommando:

mongod

Voil Ukrainian! Nu är vår MongoDB-server igång! ?

för att kunna arbeta med den här servern behöver vi en medlare. Så öppna ett annat kommandofönster i bind-mappen och kör följande kommando:

mongo

Efter att ha kört det här kommandot, navigera till skalet som vi körde mongod-kommandot (vilket är vår server). Du ser ett meddelande om anslutning accepterad i slutet. Det betyder att vår installation och konfiguration är framgångsrik!

kör helt enkelt i mongo-skalet:

db
ursprungligen har du en db som heter”test”

ställa in miljövariabler

för att spara tid kan du ställa in dina miljövariabler. I Windows görs detta genom att följa menyerna nedan:

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

kopiera bara sökvägen till vår bin-mapp och tryck på OK! I mitt fall är det C:\Program Files\MongoDB\Server\4.0\bin

Nu är du redo!

arbeta med MongoDB

det finns en massa GUI (grafiskt användargränssnitt) för att arbeta med MongoDB-server som MongoDB Compass, Studio 3T och så vidare.

de ger ett grafiskt gränssnitt så att du enkelt kan arbeta med din databas och utföra frågor istället för att använda ett skal och skriva frågor manuellt.

men i den här artikeln använder vi kommandotolken för att göra vårt arbete.

Nu är det dags för oss att dyka in i MongoDB-kommandon som hjälper dig att använda med dina framtida projekt.

  1. öppna kommandotolken och skriv mongod för att starta MongoDB-servern.

2. Öppna ett annat skal och skriv mongo för att ansluta till MongoDB-databasservern.

1. Hitta den aktuella databasen du befinner dig i

db

detta kommando visar den aktuella databasen du befinner dig i. test är den ursprungliga databasen som kommer som standard.

2. Lista databaser

show databases

Jag har för närvarande fyra databaser. De är: CrudDBadminconfig och local.

3. Gå till en viss databas

use <your_db_name>

Här har jag flyttat till local databas. Du kan kontrollera detta om du försöker kommandot db för att skriva ut det aktuella databasnamnet.

4. Skapa en databas

med RDBMS (Relational Database Management Systems) har vi databaser, tabeller, rader och kolumner.

men i NoSQL-databaser, som MongoDB, lagras data i bSon-format (en binär version av JSON). De lagras i strukturer som kallas ”samlingar”.

i SQL-databaser liknar dessa tabeller.

SQL-termer och NoSQL-termer av Victoria Malaya

Okej, låt oss prata om hur vi skapar en databas i Mongo-skalet.

use <your_db_name>

vänta, vi hade det här kommandot tidigare! Varför använder jag det igen?!

i MongoDB server, om din databas finns redan, med det kommandot kommer att navigera till din databas.

men om databasen inte finns redan, då MongoDB server kommer att skapa databasen för dig. Sedan kommer det att navigera in i det.

När du har skapat en ny databas kommer kommandotshow database inte att visa din nyskapade databas. Detta beror på att tills det har några data (dokument) i det, kommer det inte att visas i din db-lista.

5. Skapa en samling

navigera till din nyskapade databas med kommandotuse.

det finns faktiskt två sätt att skapa en samling. Låt oss se båda.

ett sätt är att infoga data i samlingen:

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

detta kommer att skapa din samling myCollection även om samlingen inte existerar. Då kommer det att infoga ett dokument med name och age. Dessa är icke-begränsade samlingar.

det andra sättet visas nedan:

2.1 Skapa en samling utan tak

db.createCollection("myCollection")

2.2 skapa en samling med tak

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

På så sätt skapar du en samling utan att infoga data.

en ”capped collection” har ett maximalt antal dokument som förhindrar överfyllda dokument.

i det här exemplet har jag aktiverat capping genom att ställa in dess värde till true.

size : 2 betyder en gräns på två megabyte, och max: 2 anger det maximala antalet dokument till två.

Nu om du försöker infoga mer än två dokument till mySecondCollection och använd kommandot find (som vi kommer att prata om snart) ser du bara de senast infogade dokumenten. Tänk på att detta inte betyder att det allra första dokumentet har tagits bort — det visas bara inte.

6. Infoga Data

Vi kan infoga data till en ny samling eller till en samling som har skapats tidigare.

sätt data kan lagras i en JSON

det finns tre metoder för att infoga data.

  1. insertOne() används endast för att infoga ett enda dokument.
  2. insertMany() används för att infoga mer än ett dokument.
  3. insert() används för att infoga dokument så många du vill.

nedan är några exempel:

  • insertOne ()
db.myCollection.insertOne( { "name": "navindu", "age": 22 })
  • insertMany ()
db.myCollection.insertMany()

insert() metoden liknar insertMany() metod.

Observera också att vi har lagt in en ny egenskap som heter location på dokumentet för John Doe. Så om du använderfind, så ser du bara förjohn doe egenskapenlocation är bifogad.

detta kan vara en fördel när det gäller NoSQL-databaser som MongoDB. Det möjliggör skalbarhet.

framgångsrikt infogade data

7. Fråga Data

så här kan du fråga Alla data från en samling:

db.myCollection.find()
resultat

om du vill se dessa data i en renare, sätt bara lägga till .pretty() till slutet av det. Detta kommer att visa dokument i ganska tryckt JSON-format.

db.myCollection.find().pretty()
resultat

Wait…In dessa exempel märkte du bara något som _id? Hur kom det dit?

Tja, när du sätter in ett dokument lägger MongoDB automatiskt till ett_id fält som unikt identifierar varje dokument. Om du inte vill att den ska visas, kör bara följande kommando

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

därefter tittar vi på filtreringsdata.

Om du vill visa ett visst dokument kan du ange en enda detalj i dokumentet som du vill ska visas.

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

låt oss säga att du bara vill visa personer vars ålder är mindre än 25. Du kan använda $lt för att filtrera för detta.

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

På samma sätt står $gt för större än, $lte är ”mindre än eller lika med”, $gte är ”större än eller lika med” och $ne är ”inte lika”.

8. Uppdatera dokument

låt oss säga att du vill uppdatera någons adress eller ålder, hur kan du göra det? Tja, se nästa exempel:

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

det första argumentet är fältet för vilket dokument du vill uppdatera. Här anger jag age för enkelheten. I produktionsmiljö kan du använda något som fältet _id.

det är alltid bättre att använda något som _id för att uppdatera en unik rad. Detta beror på att flera fält kan ha samma age och name. Därför, om du uppdaterar en enda rad, det kommer att påverka alla rader som har samma namn och ålder.

resultat

om du uppdaterar ett dokument på detta sätt med en ny egenskap, låt oss säga location till exempel, dokumentet kommer att uppdateras med det nya attributet. Och om du gör ett find, blir resultatet:

resultat

om du behöver ta bort en egenskap från ett enda dokument kan du göra något så här (låt oss säga att du vill ha age att vara borta):

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

9. Ta bort ett dokument

som jag nämnde tidigare, när du uppdaterar eller tar bort ett dokument behöver du bara ange _id inte bara nameagelocation.

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

10. Ta bort en samling

db.myCollection.remove({});

Obs, Detta är inte lika med metoden drop(). Skillnaden är drop() används för att ta bort alla dokument i en samling, men metoden remove() används för att ta bort alla dokument tillsammans med själva samlingen.

logiska operatorer

MongoDB tillhandahåller logiska operatorer. Bilden nedan sammanfattar de olika typerna av logiska operatorer.

referens: MongoDB manual

låt oss säga att du vill visa personer vars ålder är mindre än 25, och även vars plats är Colombo. Vad kan vi göra?

Vi kan använda operatören $and!

db.myCollection.find({$and:});

sist men inte minst, låt oss prata om aggregering.

aggregering

en snabb påminnelse om vad vi lärde oss om aggregeringsfunktioner i SQL-databaser:

aggregeringsfunktioner i SQL-databaser. ref: Tutorial Gateway

enkelt uttryckt, aggregering grupper värden från flera dokument och sammanfattar dem på något sätt.

Tänk om vi hade manliga och kvinnliga studenter i enrecordBook samling och vi vill ha en total räkning på var och en av dem. För att få summan av män och kvinnor kan vi använda $group aggregerad funktion.

db.recordBook.aggregate();
resultat

omslag upp

så har vi diskuterat grunderna i MongoDB Som du kan behöva i framtiden för att bygga en applikation. Jag hoppas att du gillade den här artikeln-tack för att du läste!



Lämna ett svar

Din e-postadress kommer inte publiceras.