Hogyan kezdjük el a MongoDB 10 perc alatt

által Navindu Jayatilake

MongoDB egy gazdag dokumentum-orientált NoSQL adatbázis.

ha teljesen kezdő vagy a NoSQL-hez, azt javaslom, hogy vessen egy pillantást a korábban közzétett NoSQL cikkemre.

ma meg akartam osztani néhány alapvető dolgot a MongoDB parancsokról, mint például a lekérdezés, az adatok szűrése, törlés, frissítés stb.

Oké, elég a beszélgetésből, lássunk munkához!

konfiguráció ?

a MongoDB használatához először telepítenie kell a MongoDB-t a számítógépére. Ehhez látogasson el a hivatalos letöltőközpontba, és töltse le az adott operációs rendszer verzióját. Itt, már használt ablakok.

a MongoDB community server setup letöltése után egy ‘next after next’ telepítési folyamaton megy keresztül. Ha kész, menjen át a C meghajtóra, amelybe telepítette a MongoDB-t. Menj program files és válassza ki a MongoDB könyvtárat.

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

a bin könyvtárban érdekes pár futtatható fájlt talál.

  • mongod
  • mongo

beszéljünk erről a két fájlról.

mongod jelentése “Mongo Daemon”. mongod egy háttér által használt folyamat MongoDB. A mongod fő célja az összes MongoDB szerver feladat kezelése. Például kérések elfogadása, ügyfélre való reagálás és memóriamenedzsment.

mongo egy parancssori shell, amely kölcsönhatásba léphet az ügyféllel (például rendszergazdák és fejlesztők).

most nézzük meg, hogyan tudjuk elindítani ezt a szervert. Ehhez Windows rendszeren először létre kell hoznia néhány könyvtárat a C meghajtón. Nyissa meg a parancssort a C meghajtón belül, és tegye a következőket:

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

ezeknek a könyvtáraknak a célja, hogy a MongoDB minden adat tárolásához mappát igényel. A MongoDB alapértelmezett adatkönyvtár elérési útja /data/db a meghajtón. Ezért szükséges, hogy ilyen könyvtárakat biztosítsunk.

ha a MongoDB szervert e könyvtárak nélkül indítja el, akkor valószínűleg a következő hibát fogja látni:

megpróbálja elindítani a mongodb szervert \data\db könyvtárak nélkül

miután létrehozta ezt a két fájlt, fejezze be újra a mongodb könyvtárban lévő bin mappát, és nyissa meg a shell-t azt. Futtassa a következő parancsot:

mongod

Voil! Most a MongoDB szerverünk működik! ?

ahhoz, hogy ezzel a szerverrel dolgozhassunk, szükségünk van egy közvetítőre. Tehát nyisson meg egy másik parancsablakot a bind mappában, és futtassa a következő parancsot:

mongo

a parancs futtatása után keresse meg a mongod parancsot futtató héjat (amely a szerverünk). A végén egy ‘kapcsolat elfogadva’ üzenet jelenik meg. Ez azt jelenti, hogy a telepítés és a konfiguráció sikeres!

csak egyszerűen fut a mongo shell:

db
kezdetben van egy db úgynevezett”test”

környezeti változók beállítása

időt takaríthat meg, beállíthatja a környezeti változókat. A Windows rendszerben ez az alábbi menük követésével történik:

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

egyszerűen másolja át a bin mappa elérési útját, és nyomja meg az OK gombot! Az én esetemben ez C:\Program Files\MongoDB\Server\4.0\bin

most már minden készen áll!

munka MongoDB

van egy csomó GUI (grafikus felhasználói felület) dolgozni MongoDB szerver, mint a MongoDB Compass, Studio 3T és így tovább.

grafikus felületet biztosítanak, így könnyedén dolgozhat az adatbázisával, és lekérdezéseket hajthat végre a shell használata és a lekérdezések kézi beírása helyett.

de ebben a cikkben a parancssort fogjuk használni a munkánk elvégzéséhez.

itt az ideje, hogy belemerüljünk a MongoDB parancsokba, amelyek segítenek használni a jövőbeli projektjeihez.

  1. nyissa meg a parancssort, és írja be a mongod parancsot a MongoDB szerver indításához.

2. Nyisson meg egy másik héjat, és írja be amongo parancsot a MongoDB adatbázis-kiszolgálóhoz való csatlakozáshoz.

1. Az aktuális adatbázis megkeresése

db

Ez a parancs megmutatja az aktuális adatbázist, amelyben tartózkodik. test a kezdeti adatbázis, amely alapértelmezés szerint jön.

2. Adatbázisok felsorolása

show databases

jelenleg négy adatbázisom van. Ezek a következők: CrudDBadminconfig és local.

3. Ugrás egy adott adatbázisba

use <your_db_name>

itt költöztem a local adatbázis. Ezt ellenőrizheti, ha megpróbálja a db parancsot az aktuális adatbázis nevének kinyomtatásához.

4. Adatbázis létrehozása

az RDBMS (relációs adatbázis-kezelő rendszerek) segítségével adatbázisok, táblázatok, sorok és oszlopok állnak rendelkezésre.

de a NoSQL adatbázisokban, mint például a MongoDB, az adatokat BSON formátumban tárolják (a JSON bináris változata). Ezeket “gyűjteményeknek”nevezett struktúrákban tárolják.

Az SQL adatbázisokban ezek hasonlóak a táblákhoz.

SQL és NoSQL feltételek írta: Victoria Malaya

rendben, beszéljünk arról, hogyan hozzunk létre egy adatbázist a mongo héjban.

use <your_db_name>

Várj, mi volt ez a parancs előtt! Miért használom újra?!

a MongoDB szerveren, ha az adatbázis már jelen van, ezzel a paranccsal navigálhat az adatbázisba.

de ha az adatbázis még nincs jelen, akkor a MongoDB server létrehozza az adatbázist az Ön számára. Ezután navigálni fog benne.

új adatbázis létrehozása után a show database parancs futtatása nem jeleníti meg az újonnan létrehozott adatbázist. Ez azért van, mert amíg nincs benne adat (dokumentum), addig nem fog megjelenni a db listában.

5. Gyűjtemény létrehozása

keresse meg az újonnan létrehozott adatbázist a use paranccsal.

valójában kétféle módon lehet létrehozni egy gyűjteményt. Lássuk mindkettőt.

az egyik módszer az adatok beszúrása a gyűjteménybe:

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

Ez létrehozza a gyűjteményét myCollection akkor is, ha a gyűjtemény nem létezik. Ezután beszúr egy dokumentumot name és age. Ezek nem korlátozott gyűjtemények.

a második út az alábbiakban látható:

2.1 nem korlátozott gyűjtemény létrehozása

db.createCollection("myCollection")

2.2 korlátozott gyűjtemény létrehozása

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

ily módon adatok beszúrása nélkül hoz létre gyűjteményt.

A “korlátozott gyűjtemény” maximális dokumentumszámmal rendelkezik, amely megakadályozza a dokumentumok túlcsordulását.

ebben a példában engedélyeztem a plafont, az értékét trueértékre állítva.

a size : 2 két megabájtos korlátot jelent, és max: 2 a dokumentumok maximális számát kettőre állítja.

ha kettőnél több dokumentumot próbálsz beilleszteni a mySecondCollection – be, és a find parancsot használod (amiről hamarosan beszélünk), akkor csak a legutóbb beillesztett dokumentumokat fogod látni. Ne feledje, hogy ez nem azt jelenti, hogy a legelső dokumentumot törölték — csak nem jelenik meg.

6. Adatok beszúrása

adatokat beilleszthetünk egy új gyűjteménybe, vagy egy korábban létrehozott gyűjteménybe.

az adatok JSON-ban történő tárolásának módjai

az adatok beillesztésének három módja van.

  1. insertOne() csak egyetlen dokumentum beszúrására szolgál.
  2. insertMany() egynél több dokumentum beszúrására szolgál.
  3. insert() dokumentumok beszúrására szolgál, amennyit csak akar.

Az alábbiakban néhány példa:

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

a insert() módszer hasonló a insertMany() módszer.

ezenkívül vegye figyelembe, hogy a location nevű új tulajdonságot beillesztettük a John Doedokumentumba. Tehát ha find, akkor csak a john doe esetén jelenik meg a location tulajdonság csatolva van.

ez előnyt jelenthet a NoSQL adatbázisok, például a MongoDB esetében. Lehetővé teszi a skálázhatóságot.

sikeresen beillesztett adatok

7. Adatok lekérdezése

így lehet lekérdezni az összes adatot egy gyűjteményből:

db.myCollection.find()
eredmény

Ha azt szeretnénk, hogy ezeket az adatokat egy tisztább módon csak add .pretty() a végén is. Ez a dokumentum szép nyomtatott JSON formátumban jelenik meg.

db.myCollection.find().pretty()
eredmény

Wait…In ezek a példák csak észrevettél valamit _id? Hogy került ez oda?

Nos, amikor beszúr egy dokumentumot, a MongoDB automatikusan hozzáad egy _id mezőt, amely egyedileg azonosítja az egyes dokumentumokat. Ha nem szeretné, hogy megjelenjen, egyszerűen futtassa a következő parancsot

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

ezután megvizsgáljuk az adatok szűrését.

Ha meg szeretne jeleníteni egy adott dokumentumot, megadhatja a dokumentum egyetlen részletét, amelyet meg szeretne jeleníteni.

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

tegyük fel, hogy csak 25 évesnél fiatalabb embereket szeretne megjeleníteni. A $lt segítségével szűrheti ezt.

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

hasonlóképpen, $gt jelentése nagyobb mint, $lte jelentése “kisebb vagy egyenlő”, $gte jelentése “nagyobb vagy egyenlő” és

$ne

jelentése “nem egyenlő”.

8. Dokumentumok frissítése

tegyük fel, hogy frissíteni szeretné valaki címét vagy életkorát, hogyan teheti meg? Nos, lásd a következő példát:

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

az első argumentum a frissíteni kívánt dokumentum mezője. Itt megadom age az egyszerűség kedvéért. Termelési környezetben a _id mezőt használhatja.

mindig jobb, ha valami hasonlót használ _id egy egyedi sor frissítéséhez. Ez azért van, mert több mezőnek lehet ugyanaz a age és name. Ezért, ha egyetlen sort frissít, az hatással lesz minden olyan sorra, amelynek azonos a neve és az életkora.

eredmény

ha ilyen módon frissít egy dokumentumot egy új tulajdonsággal, mondjuk location például, a dokumentum frissül az új attribútummal. Ha pedig find, akkor az eredmény:

eredmény

Ha el kell távolítania egy tulajdonságot egyetlen dokumentumból, akkor valami ilyesmit tehet (tegyük fel, hogy age to be gone):

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

9. Dokumentum eltávolítása

mint korábban említettem, a dokumentum frissítésekor vagy törlésekor csak meg kell adnia a _id nem csak nameagelocation.

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

10. Gyűjtemény eltávolítása

db.myCollection.remove({});

Megjegyzés: Ez nem egyenlő a drop() módszerrel. A különbség a drop() a gyűjteményen belüli összes dokumentum eltávolítására szolgál, de a remove() módszerrel törli az összes dokumentumot magával a gyűjteménygel együtt.

logikai operátorok

a MongoDB logikai operátorokat biztosít. Az alábbi kép összefoglalja a logikai operátorok különböző típusait.

hivatkozás: MongoDB manual

tegyük fel, hogy olyan embereket szeretne megjeleníteni, akiknek életkora kevesebb, mint 25, valamint akiknek helye Colombo. Mit tehetnénk?

használhatjuk a $and operátort!

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

végül, de nem utolsósorban, beszéljünk az aggregációról.

aggregáció

gyors emlékeztető arról, hogy mit tanultunk az SQL adatbázisok aggregációs funkcióiról:

összesítő függvények SQL adatbázisokban. ref: Tutorial Gateway

egyszerűen fogalmazva, az összesítés több dokumentumból csoportosítja az értékeket, és valamilyen módon összefoglalja azokat.

Képzeld el, ha férfi és női diákjaink lennének egy recordBook gyűjteményben, és mindegyikre teljes számolást szeretnénk. A hímek és nőstények összegének meghatározásához használhatjuk a $group aggregált függvényt.

db.recordBook.aggregate();
eredmény

becsomagolás

tehát, megbeszéltük, hogy a a MongoDB alapjai, amelyekre a jövőben szüksége lehet egy alkalmazás felépítéséhez. Remélem tetszett ez a cikk-köszönöm az olvasást!



Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.