Útmutató a Java-val ellátott MongoDB-hez

1. Áttekintés

Ebben a cikkben megnézzük a MongoDB, egy nagyon népszerű NoSQL nyílt forráskódú adatbázis és egy önálló Java kliens integrálását.

A MongoDB C ++ nyelven íródott, és számos olyan szilárd tulajdonsággal rendelkezik, mint a térképcsökkentés, az automatikus aprítás, a replikáció, a magas rendelkezésre állás stb.

2. MongoDB

Kezdjük néhány kulcsfontosságú ponttal magáról a MongoDB-ről:

  • JSON-szerű dokumentumokba tárol adatokat, amelyek különböző felépítésűek lehetnek
  • dinamikus sémákat használ, ami azt jelenti, hogy rekordokat készíthetünk anélkül, hogy bármit is előre definiálnánk
  • a rekord felépítése egyszerűen megváltoztatható új mezők hozzáadásával vagy a meglévők törlésével

A fent említett adatmodell lehetővé teszi számunkra a hierarchikus kapcsolatok ábrázolását, a tömbök és más összetettebb struktúrák könnyű tárolását.

3. Terminológiák

A fogalmak megértése a MongoDB-ben könnyebbé válik, ha összehasonlíthatjuk őket a relációs adatbázis-struktúrákkal.

Nézzük meg a Mongo és egy hagyományos MySQL rendszer közötti analógiákat:

  • asztal a MySQL-ben a Gyűjtemény Mongóban
  • Sor válik a Dokumentum
  • Oszlop válik a Terület
  • Csatlakozik definíciója: összekapcsolása és beágyazott dokumentumokat

Ez természetesen leegyszerűsített módszer a MongoDB alapkoncepcióinak vizsgálatára, ugyanakkor hasznos.

Most merüljünk el a megvalósításban, hogy megértsük ezt a hatékony adatbázist.

4. Maven-függőségek

Először meg kell határoznunk a Java illesztőprogram függőségét a MongoDB számára:

 org.mongodb mongo-java-driver 3.4.1 

Annak ellenőrzéséhez, hogy a könyvtár új verziója megjelent-e, kövesse itt a kiadásokat.

5. Használata MongoDB

Most kezdjük el végrehajtani a Mongo lekérdezéseket a Java-val. Az alap CRUD műveleteket követjük, mivel ezek a legjobbak a kezdéshez.

5.1. Kapcsolat létesítése a következővel: MongoClient

Először hozzunk létre egy kapcsolatot egy MongoDB szerverrel. A> = 2.10.0 verziónál a MongoClient:

MongoClient mongoClient = új MongoClient ("localhost", 27017);

És régebbi verziók esetén használja Mongo osztály:

Mongo mongo = új mongó ("localhost", 27017);

5.2. Csatlakozás egy adatbázishoz

Most csatlakozzunk az adatbázisunkhoz. Érdekes megjegyezni, hogy nem kell létrehoznunk. Amikor Mongo úgy látja, hogy az adatbázis nem létezik, akkor létrehozza nekünk:

DB adatbázis = mongoClient.getDB ("myMongoDb");

Néha alapértelmezés szerint a MongoDB hitelesített módban fut. Ebben az esetben hitelesítenünk kell, miközben csatlakozunk egy adatbázishoz.

Megtehetjük az alábbiak szerint:

MongoClient mongoClient = új MongoClient (); DB adatbázis = mongoClient.getDB ("myMongoDb"); logikai hitelesítés = adatbázis.authenticate ("felhasználónév", "pwd" .toCharArray ());

5.3. Meglévő adatbázisok megjelenítése

Jelenítsük meg az összes létező adatbázist. Amikor a parancssort akarjuk használni, az adatbázisok megjelenítésének szintaxisa hasonló a MySQL-hez:

adatbázisok megjelenítése;

A Java-ban az alábbi kódrészlet segítségével jelenítjük meg az adatbázisokat:

mongoClient.getDatabaseNames (). forEach (System.out :: println);

A kimenet a következő lesz:

helyi 0,000 GB myMongoDb 0,000 GB

Felett, helyi az alapértelmezett Mongo adatbázis.

5.4. Hozzon létre egy Gyűjtemény

Kezdjük azzal, hogy létrehozunk egy Gyűjtemény (táblázat megfelelője a MongoDB-hez) az adatbázisunkhoz. Miután csatlakoztunk az adatbázisunkhoz, elkészíthetjük a Gyűjtemény mint:

database.createCollection ("ügyfelek", null);

Most jelenítsük meg az összes meglévő gyűjteményt az aktuális adatbázishoz:

database.getCollectionNames (). forEach (System.out :: println);

A kimenet a következő lesz:

ügyfelek

5.5. Mentés - Beszúrás

A mentés művelet rendelkezik mentés vagy frissítés szemantikával: ha egy id jelen van, elvégez egy frissítés, ha nem - akkor egy betét.

Amikor mentés új ügyfél:

DBCollection gyűjtemény = database.getCollection ("ügyfelek"); BasicDBObject dokumentum = új BasicDBObject (); document.put ("név", "Shubham"); document.put ("vállalat", "Baeldung"); gyűjtemény.betét (dokumentum);

Az entitás bekerül egy adatbázisba:

{"_id": ObjectId ("33a52bb7830b8c9b233b4fe6"), "name": "Shubham", "company": "Baeldung"}

Ezután ugyanezt a műveletet fogjuk megvizsgálni - mentés - val vel frissítés szemantika.

5.6. Mentés - frissítés

Most nézzük meg mentés val vel frissítés szemantika, meglévő vevőn működik:

{"_id": ObjectId ("33a52bb7830b8c9b233b4fe6"), "name": "Shubham", "company": "Baeldung"}

Most, amikor mi mentés a meglévő ügyfél - frissítjük:

BasicDBObject lekérdezés = new BasicDBObject (); query.put ("név", "Shubham"); BasicDBObject newDocument = új BasicDBObject (); newDocument.put ("név", "John"); BasicDBObject updateObject = új BasicDBObject (); updateObject.put ("$ set", newDocument); collection.update (lekérdezés, updateObject);

Az adatbázis a következőképpen fog kinézni:

{"_id": ObjectId ("33a52bb7830b8c9b233b4fe6"), "name": "John", "company": "Baeldung"}

Amint láthatja, ebben a konkrét példában mentés szemantikáját használja frissítés, mert az objektumot a megadottal használjuk _id.

5.7. Olvasni egy Dokumentum A-tól Gyűjtemény

Keressük meg a Dokumentum a Gyűjtemény lekérdezés készítésével:

BasicDBObject searchQuery = új BasicDBObject (); searchQuery.put ("név", "John"); DBCursor kurzor = collection.find (searchQuery); while (kurzor.hasNext ()) {System.out.println (kurzor.next ()); }

Ez mutatja az egyetlen Dokumentum mára a mi Gyűjtemény:

[{"_id": ObjectId ("33a52bb7830b8c9b233b4fe6"), "name": "John", "company": "Baeldung"}]

5.8. Töröl a Dokumentum

Térjünk át az utolsó CRUD műveletre, törlés:

BasicDBObject searchQuery = új BasicDBObject (); searchQuery.put ("név", "John"); collection.remove (searchQuery);

A fenti parancs végrehajtásával csak mi Dokumentum eltávolításra kerül a Gyűjtemény.

6. Következtetés

Ez a cikk egy gyors bevezetés volt a Java-ból származó MongoDB használatához.

Ezeknek a példáknak és kódrészleteknek a megvalósítása megtalálható a GitHub-on - ez egy Maven-alapú projekt, ezért könnyen importálhatónak és futtathatónak kell lennie.


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