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:
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
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.
- ö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: CrudDB
admin
config
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.
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.
det finns tre metoder för att infoga data.
-
insertOne()
används endast för att infoga ett enda dokument. -
insertMany()
används för att infoga mer än ett dokument. -
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.
7. Fråga Data
så här kan du fråga Alla data från en samling:
db.myCollection.find()
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()
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" })
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.
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:
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 name
age
location
.
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.
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:
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();
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!