Mi a MongoDB? Architecture, jellemzők és példa
⚡ Okos összefoglaló
MongoDB egy dokumentumorientált NoSQL adatbázis, amelyet nagy mennyiségű adat tárolására használnak, és amely táblázatok és sorok helyett gyűjteményeket és dokumentumokat használ. Ez az erőforrás elmagyarázza MongoDB jellemzők, egy dokumentumpélda, a legfontosabb architektúra-összetevők, használatának okai, adatmodellezés, és hogy miben különbözik egy relációs adatbázistól.

Mi a MongoDB?
MongoDB egy dokumentum-orientált NoSQL adatbázis, amelyet nagy mennyiségű adattárolásra használnak. A táblák és sorok használata helyett, mint a hagyományos relációs adatbázisokban, MongoDB gyűjteményeket és dokumentumokat használ. A dokumentumok kulcs-érték párokból állnak, amelyek az adatok alapegységei MongoDBA gyűjtemények dokumentumok és függvények halmazait tartalmazzák, ami a relációs adatbázis-tábláknak felel meg. MongoDB egy adatbázis, amely a 2000-es évek közepe táján került napvilágra.
MongoDB Jellemzők
- Minden adatbázis gyűjteményeket tartalmaz, amelyek viszont dokumentumokat tartalmaznak. Minden dokumentum eltérő lehet, változó számú mezővel. Az egyes dokumentumok mérete és tartalma eltérhet egymástól.
- A dokumentum szerkezete jobban összhangban van azzal, ahogy a fejlesztők az osztályaikat és objektumaikat a megfelelő programozási nyelvükön építik fel. A fejlesztők gyakran mondják, hogy osztályaik nem sorok és oszlopok, hanem világos szerkezetük van kulcs-érték párokkal.
- A sorok (vagy dokumentumok a behívás szerint MongoDB) nem kell előre definiált sémával rendelkezniük. Ehelyett a mezők menet közben is létrehozhatók.
- A belül elérhető adatmodell MongoDB lehetővé teszi hierarchikus kapcsolatok ábrázolását, tömbök tárolását és más összetettebb struktúrák egyszerűbb tárolását.
- Bővíthetőség - A MongoDB A környezetek nagyon skálázhatóak. A világ minden táján a vállalatok definiált klasztereket használnak, némelyikük több mint 100 csomópontot futtat, az adatbázisban körülbelül millió dokumentummal.
MongoDB Példa
Az alábbi példa bemutatja, hogyan lehet egy dokumentumot modellezni MongoDB.
- Az _id mezőt hozzáadja MongoDB a gyűjteményben lévő dokumentum egyedi azonosítására.
- Amit megjegyezhet, az az, hogy a rendelési adatok (rendelésazonosító, termék és mennyiség), amelyeket az RDBMS-ben általában külön táblázatban tárolnak, valójában beágyazott dokumentumként vannak tárolva magában a gyűjteményben a MongoDBEz az egyik legfontosabb különbség az adatok modellezésének módjában MongoDB.
Kulcsfontosságú összetevői MongoDB Architectúra
Az alábbiakban felsorolunk néhány általánosan használt kifejezést MongoDB:
- _id – Ez a mező mindenben kötelező MongoDB dokumentum. Az _id mező egyedi értéket jelent a MongoDB dokumentum. Az _id mező olyan, mint a dokumentum elsődleges kulcsa. Ha új dokumentumot hoz létre _id mező nélkül, MongoDB automatikusan létrehozza a mezőt. Tehát például, ha a fenti ügyféltáblázat példáját látjuk, MongoDB egy 24 jegyű egyedi azonosítót ad hozzá a gyűjtemény minden egyes dokumentumához.
| _Id | Ügyfél-azonosító | Ügyfél neve | Rendelés azonosító |
|---|---|---|---|
| 563479cc8a8a4246bd27d784 | 11 | Guru99 | 111 |
| 563479cc7a8a4246bd47d784 | 22 | Trevor Smith | 222 |
| 563479cc9a8a4246bd57d784 | 33 | Nicole | 333 |
- Gyűjtemény – Ez egy csoportping of MongoDB dokumentumok. A gyűjtemény egy táblázatnak felel meg, amelyet bármely más relatív adatbázis-kezelő rendszerben (RDBMS) hoztak létre, például Oracle vagy MS SQL. Egy gyűjtemény egyetlen adatbázison belül létezik. Amint a bevezetőből látható, a gyűjtemények nem kényszerítenek ki semmilyen struktúrát.
- Kurzor – Ez egy mutató a lekérdezés eredményhalmazára. Az ügyfelek a kurzor segítségével iterálhatják az eredményeket.
- adatbázis – Ez egy gyűjtemények tárolója, mint például az RDBMS-ben, ahol táblázatok tárolója. Minden adatbázis saját fájlkészletet kap a fájlrendszeren. A MongoDB szerver több adatbázist is tárolhat.
- dokumentum – Egy rekord a MongoDB A gyűjteményt alapvetően dokumentumnak nevezzük. A dokumentum viszont mezőnevekből és értékekből áll.
- Mező – Név-érték párok egy dokumentumban. Egy dokumentum nulla vagy több mezőt tartalmaz. A mezők analógok a relációs adatbázisok oszlopaival. A következő ábra kulcs-érték párokat tartalmazó mezőkre mutat példát. Tehát az alábbi példában a CustomerID és a 11 a dokumentumban definiált kulcs-érték párok egyike.
- JSON – Ezt úgy ismerik JavaForgatókönyv Objektumjelölés. Ez egy ember által olvasható, egyszerű szöveges formátum a strukturált adatok kifejezésére. A JSON jelenleg számos programozási nyelven támogatott.
Csak egy gyors megjegyzés az _id mező és a normál gyűjtőmező közötti lényeges különbséghez. Az _id mező a gyűjteményben lévő dokumentumok egyedi azonosítására szolgál, és automatikusan hozzáadja MongoDB amikor a gyűjtemény létrejön.
Miért használja MongoDB?
Az alábbiakban felsorolunk néhány okot, amiért érdemes elkezdeni használni MongoDB:
- Dokumentum orientált - Azóta MongoDB egy olyan NoSQL típusú adatbázis, ahelyett, hogy relációs típusú formátumban lenne az adatok, dokumentumokban tárolja az adatokat. Ez teszi MongoDB nagyon rugalmas és alkalmazkodóképes a valós üzleti helyzetekhez és követelményekhez.
- Ad hoc lekérdezések - MongoDB támogatja a mezők, tartomány lekérdezések és reguláris kifejezések szerinti keresést. Lekérdezéseket lehet végrehajtani bizonyos mezők visszaadására a dokumentumokon belül.
- Indexelés – Indexek hozhatók létre a keresések teljesítményének javítása érdekében. MongoDB. Bármely mező a MongoDB a dokumentum indexelhető.
- replikáció - MongoDB magas rendelkezésre állást biztosíthat replikakészletekkel. Egy replikakészlet kettő vagy több elemből áll MongoDB példányok. Minden replikahalmaz-tag bármikor betöltheti az elsődleges vagy a másodlagos replika szerepét. Az elsődleges replika a fő szerver, amely kommunikál a klienssel, és elvégzi az összes olvasási/írási műveletet. A másodlagos replikák a beépített replikáció segítségével megőrzik az elsődleges adatainak másolatát. Amikor egy elsődleges replika meghibásodik, a replikahalmaz automatikusan átvált a másodlagosra, és ezután az lesz az elsődleges szerver.
- Terheléselosztás - MongoDB a felosztás fogalmát használja a vízszintes méretezéshez az adatok több részre való felosztásával MongoDB példányok. MongoDB több kiszolgálón is futhat, kiegyenlítve a terhelést és/vagy megkettőzve az adatokat, hogy a rendszer folyamatosan működjön hardverhiba esetén.
Adatmodellezés be MongoDB
Amint azt a bevezető részből láthattuk, az adatok a MongoDB rugalmas sémával rendelkezik. Ellentétben a be SQL adatbázisok, ahol az adatok beszúrása előtt deklarálnia kell egy tábla sémáját, MongoDBgyűjteményei nem kényszerítik ki a dokumentumszerkezetet. Ez a fajta rugalmasság az, ami MongoDB olyan hatalmas.
Amikor adatokat modellezünk MongoDB, a következőket tartsd szem előtt:
- Milyen igényei vannak az alkalmazásnak? – Vizsgálja meg az alkalmazás üzleti igényeit, és nézze meg, hogy milyen adatokra és milyen típusú adatokra van szüksége az alkalmazásnak. Ennek alapján gondoskodjon arról, hogy a dokumentum szerkezete ennek megfelelően legyen meghatározva.
- Milyen adatvisszakeresési minták vannak? – Ha nagy lekérdezéshasználatra számít, akkor fontolja meg indexek használatát az adatmodelljében a lekérdezések hatékonyságának javítása érdekében.
- Gyakran történnek beszúrások, frissítések és eltávolítások az adatbázisban? Gondolja át az indexek használatát, vagy szükség esetén építse be a horizontális felbontást az adatmodellezési tervbe az átfogó hatékonyság javítása érdekében. MongoDB környezetben.
A különbség köztük MongoDB & RDBMS
Az alábbiakban bemutatunk néhány kulcsfontosságú különbséget a kifejezések között MongoDB és RDBMS:
| RDBMS | MongoDB | Különbség |
|---|---|---|
| Táblázat | Gyűjtemény | In RDBMS, a táblázat tartalmazza az adatok tárolására használt oszlopokat és sorokat, míg a MongoDB Ugyanezt a struktúrát gyűjteménynek nevezik. A gyűjtemény dokumentumokat tartalmaz, amelyek mezőket tartalmaznak, amelyek pedig kulcs-érték párok. |
| Sor | dokumentum | Az RDBMS-ben a sor egyetlen, implicit módon strukturált adatelemet jelöl egy táblázatban. Ban ben MongoDB, az adatok dokumentumokban tárolódnak. |
| Oszlop | Mező | Az RDBMS-ben az oszlop adatértékek halmazát jelöli. Ezek benne MongoDB mezőknek nevezzük. |
| csatlakozik | Beágyazott dokumentumok | Az RDBMS-ben az adatok néha különböző táblázatokban vannak elosztva, és az összes adat teljes nézetének megjelenítése érdekében néha illesztéseket hoznak létre a táblázatok között az adatok lekéréséhez. MongoDBaz adatokat általában egyetlen gyűjteményben tárolják, de beágyazott dokumentumok segítségével elválasztják őket. Tehát nincs illesztések fogalma a MongoDB. |
A kifejezések közötti különbségeken kívül néhány további különbséget is bemutatunk az alábbiakban:
- A relációs adatbázisok az adatok integritásának kikényszerítéséről ismertek. Ez nem kifejezett követelmény MongoDB.
- Az RDBMS megköveteli, hogy az adatok legyenek normalizált először is, hogy megakadályozza az árva rekordok és duplikátumok kialakulását. Az adatok normalizálása ezután több táblát igényel, ami több táblaillesztést eredményez, így több kulcsra és indexre lesz szükség. Ahogy az adatbázisok növekedni kezdenek, a teljesítmény problémává válhat. Ez ismét nem egy explicit követelmény a MongoDB. MongoDB rugalmas, és nem kell először normalizálni az adatokat.


