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:
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
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.
- 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: CrudDB
admin
config
é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.
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 beillesztésének három módja van.
-
insertOne()
csak egyetlen dokumentum beszúrására szolgál. -
insertMany()
egynél több dokumentum beszúrására szolgál. -
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 Doe
dokumentumba. 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.
7. Adatok lekérdezése
így lehet lekérdezni az összes adatot egy gyűjteményből:
db.myCollection.find()
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()
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" })
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.
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:
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 name
age
location
.
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.
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:
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();
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!