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:
- A szűrési kritériumok egy vagy több dokumentum megkereséséhez
- 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.