MongoDB BSON Guide

1. Bemutatkozás

Ebben az oktatóanyagban megvizsgáljuk a BSON-t és azt, hogy miként használhatjuk a MongoDB-vel való interakcióra.

Most a MongoDB és annak összes képességének részletes leírása meghaladja a cikk kereteit. Hasznos azonban megérteni néhány kulcsfogalmat.

A MongoDB egy elosztott, NoSQL dokumentumtároló motor. A dokumentumokat BSON-adatokként tárolják, és gyűjteményekbe csoportosítják. A gyűjteményben lévő dokumentumok analógak a relációs adatbázis-tábla soraival.

A mélyebb áttekintés érdekében tekintse meg a bevezető MongoDB cikket.

2. Mi az BSON?

A BSON jelentése Bináris JSON. Ez egy protokoll a JSON-szerű adatok bináris sorosításához.

A JSON a modern webszolgáltatásokban népszerű adatcsere-formátum. Rugalmas módot kínál a komplex adatstruktúrák ábrázolására.

A BSON számos előnyt nyújt a szokásos JSON használatával szemben:

  • Kompakt: A legtöbb esetben a A BSON struktúra kevesebb helyet igényel, mint a JSON megfelelője
  • Adattípusok: A BSON további adattípusokat biztosít nem található meg a szokásos JSON-ban, mint pl Dátum és BinData

A BSON használatának egyik fő előnye, hogy könnyen át lehet haladni. A BSON dokumentumok további metaadatokat tartalmaznak, amelyek lehetővé teszik a dokumentumok mezőinek egyszerű manipulálását anélkül, hogy el kellene olvasni a teljes dokumentumot.

3. A MongoDB illesztőprogram

Most, hogy alapvető ismereteink vannak a BSON-ról és a MongoDB-ről, nézzük meg, hogyan lehet őket együtt használni. A CRUD betűszó főbb műveleteire fogunk koncentrálni (Create, Read, Update, Delete).

A MongoDB szoftver illesztőprogramokat kínál a legmodernebb programozási nyelvekhez. Az illesztőprogramok a BSON könyvtár tetejére épülnek, ami azt jelenti, hogy közvetlenül a BSON API-val fogunk együtt dolgozni a lekérdezések készítésekor. További információ a MongoDB lekérdezési nyelv útmutatójában található.

Ebben a szakaszban megvizsgáljuk az illesztőprogram használatát a fürthöz való csatlakozáshoz, valamint a BSON API használatát különböző típusú lekérdezések végrehajtásához. Vegye figyelembe, hogy a MongoDB illesztőprogram a Szűrők osztály, amely segíthet nekünk kompaktabb kód megírásában. Ehhez az oktatóanyaghoz azonban kizárólag az alapvető BSON API használatára összpontosítunk.

A MongoDB illesztőprogram és a BSON közvetlen használata helyett tekintse meg a Spring Data MongoDB útmutatónkat.

3.1. Csatlakozás

A kezdéshez először hozzáadjuk a MongoDB illesztőprogramot függőségként alkalmazásunkhoz:

 org.mongodb mongodb-driver-sync 3.10.1 

Ezután létrehozunk egy kapcsolatot egy MongoDB adatbázissal és gyűjteményrel:

MongoClient mongoClient = MongoClients.create (); MongoDatabase adatbázis = mongoClient.getDatabase ("myDB"); MongoCollection gyűjtemény = database.getCollection ("alkalmazottak");

A többi szakasz a lekérdezések létrehozását vizsgálja a Gyűjtemény referencia.

3.2. Helyezze be

Tegyük fel, hogy a következő JSON-nal rendelkezünk, amelyet új dokumentumként szeretnénk beilleszteni a alkalmazottak Gyűjtemény:

{"first_name": "Joe", "last_name": "Smith", "title": "Java Developer", "service_of_service" évek: 3, "skills": ["java", "spring", "mongodb"], "manager": {"first_name": "Sally", "last_name": "Johanson"}}

Ez a JSON példa bemutatja a MongoDB dokumentumokkal leggyakrabban előforduló adattípusokat: szöveges, numerikus, tömbök és beágyazott dokumentumok.

A BSON használatával a MongoDB-ket használhatjuk Dokumentum API:

Dokumentum alkalmazott = új dokumentum () .append ("keresztnév", "Joe") .append ("vezetéknév", "Smith") .append ("cím", "Java fejlesztő") .append ("kiszolgálás éve", 3) .append ("skillek", Arrays.asList ("java", "spring", "mongodb")) .append ("manager", új Document () .append ("first_name", "Sally") .append (" vezetéknév "," Johanson ")); collection.insertOne (alkalmazott); 

A Dokumentum osztály a BSON-ban használt elsődleges API. Kiterjeszti a Java-t Térkép interfész és számos túlterhelt módszert tartalmaz. Ez megkönnyíti a natív típusokkal, valamint a gyakori objektumokkal, például az objektumazonosítókkal, a dátumokkal és a listákkal való munkát.

3.3. megtalálja

Dokumentum megkereséséhez a MongoDB-ben biztosítunk egy keresési dokumentumot, amely meghatározza, mely mezőkre kell lekérdezni. Például az összes olyan dokumentum megkereséséhez, amelynek vezetékneve „Smith”, a következő JSON dokumentumot használjuk:

{"vezetéknév": "Smith"}

A BSON-ban írva ez a következő lenne:

Dokumentumlekérdezés = új dokumentum ("vezetéknév", "Smith"); Eredménylista = new ArrayList (); collection.find (lekérdezés) .into (eredmények);

A „keresés” lekérdezések több mezőt is elfogadhatnak, és az alapértelmezett viselkedés a logika használata és kezelővel kombinálni őket. Ez azt jelenti, hogy csak az összes mezőnek megfelelő dokumentum kerül visszaküldésre.

Ennek kikerüléséhez a MongoDB biztosítja a vagy lekérdezés operátor:

{"$ vagy": [{"first_name": "Joe"}, {"last_name": "Smith"}]}

Ez megtalálja az összes olyan dokumentumot, amelyek keresztneve „Joe” vagy vezetékneve „Smith”. Ha ezt BSON néven írnánk, beágyazott szöveget használnánk Dokumentum akárcsak a fenti beszúrási lekérdezés:

Dokumentumlekérdezés = új dokumentum ("$ vagy", Arrays.asList (új dokumentum ("vezetéknév", "Smith"), új dokumentum ("keresztnév", "Joe"))); Eredménylista = new ArrayList (); collection.find (lekérdezés) .into (eredmények);

3.4. Frissítés

A frissítési lekérdezések kissé eltérnek a MongoDB-ben, mert két dokumentumra van szükségük:

  1. A szűrési kritériumok egy vagy több dokumentum megkereséséhez
  2. Frissítési dokumentum, amely meghatározza a módosítandó mezőket

Tegyük fel például, hogy minden olyan alkalmazotthoz hozzá akarunk adni egy „biztonsági” készséget, amely már rendelkezik „rugós” készséggel. Az első dokumentum megtalálja az összes „tavaszi” készséggel rendelkező alkalmazottat, a második pedig új „biztonsági” bejegyzést ad hozzá készségtömbjéhez.

A JSON-ban ez a két lekérdezés így néz ki:

{"készségek": {$ elemMatch: {"$ eq": "tavasz"}}} {"$ push": {"készségek": "biztonság"}}

És a BSON-ban ezek lennének:

Dokumentumlekérdezés = új dokumentum ("készségek", új dokumentum ("$ elemMatch", új dokumentum ("$ eq", "tavasz")); Dokumentum frissítés = új dokumentum ("$ push", új dokumentum ("készségek", "biztonság")); collection.updateMany (lekérdezés, frissítés); 

3.5. Töröl

A MongoDB lekérdezéseinek törlése ugyanazt a szintaxist használja, mint a lekérdezések keresése. Egyszerűen olyan dokumentumot nyújtunk be, amely egy vagy több kritériumot határoz meg az egyezéshez.

Tegyük fel például, hogy találtunk egy hibát az alkalmazottak adatbázisában, és véletlenül létrehoztunk egy a negatív értékű alkalmazottakat az évekig tartó szolgálat során. Mindegyikük megtalálásához a következő JSON-t használnánk:

{"szolgáltatási évek": {"$ lt": 0}}

Az egyenértékű BSON dokumentum a következő lenne:

Dokumentumlekérdezés = új dokumentum ("kiszolgálás éve", új dokumentum ("$ lt", 0)); collection.deleteMany (lekérdezés);

4. Következtetés

Ebben az oktatóanyagban bemutattuk a MongoDB lekérdezések BSON könyvtár használatával történő elkészítésének alapvető bevezetését. Csak a BSON API használatával valósítottunk meg alapvető CRUD műveleteket egy MongoDB gyűjtemény számára.

Amire nem térünk ki, azok olyan fejlettebb témák, mint a vetítések, összesítések, térinformatikai lekérdezések, tömeges műveletek stb. Mindezek csak a BSON könyvtár használatával lehetségesek. Az itt látott példák alkotják azokat az építőelemeket, amelyekkel ezeket a fejlettebb műveleteket megvalósíthatnánk.

Mint mindig, a fenti kód példákat a GitHub repo-ban találja meg.


$config[zx-auto] not found$config[zx-overlay] not found