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.

  • 📄 Dokumentummodell: Az adatokat kulcs-érték dokumentumokként tároljuk gyűjteményekben, nem táblázatokban.
  • 🧩 Rugalmas séma: A mezők menet közben, előre meghatározott struktúra nélkül jönnek létre.
  • 🏗️ Alapvető alkotóelemek: _id, gyűjtemény, dokumentum, mező, kurzor, adatbázis és JSON.
  • 🇧🇷 Miért érdemes használni: Eseti lekérdezések, indexelés, replikáció és skálázás a skálázás érdekében.
  • 🔄 RDBMS-hez képest: A gyűjtemények a táblázatokat, a beágyazott dokumentumok pedig az illesztéseket helyettesítik.

Mi a MongoDB

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

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.

  1. Az _id mezőt hozzáadja MongoDB a gyűjteményben lévő dokumentum egyedi azonosítására.
  2. 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.

MongoDB Példa

Kulcsfontosságú összetevői MongoDB Architectúra

Az alábbiakban felsorolunk néhány általánosan használt kifejezést MongoDB:

  1. _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
  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.

Kulcsfontosságú összetevői MongoDB Architectúra

  1. 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:

  1. 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.
  2. 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.
  3. 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ő.
  4. 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.
  5. 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:

  1. 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.
  2. 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.
  3. 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:

  1. 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.
  2. 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.

GYIK

MongoDB nagy mennyiségű strukturálatlan és félig strukturált adatot tárol, így hasznossá válik mesterséges intelligencia és gépi tanulási folyamatokhoz. Rugalmas dokumentumai betanítási adatokat, jellemzőkészleteket és modell metaadatokat tartalmaznak, az Atlas pedig vektorkeresést is kínál mesterséges intelligencia alkalmazásokhoz.

Igen. MongoDB Az Atlas Vector Search lehetővé teszi vektoros beágyazások tárolását és lekérdezését a dokumentumok mellett. Ez támogatja a szemantikus keresést, az ajánlásokat és a visszakereséssel kiegészített generálást mesterséges intelligencia alkalmazásokhoz külön vektoradatbázis nélkül.

MongoDB A Community Edition ingyenes és nyílt forráskódú. MongoDB Emellett kínálja az Atlas nevű felügyelt felhőszolgáltatást ingyenes szinttel, valamint az Enterprise Editiont, amely felár ellenében fejlett biztonságot és támogatást nyújt.

Sok nagy szervezet használja MongoDB nagy volumenű, rugalmas adattároláshoz, beleértve az e-kereskedelem, a játék, az IoT és a tartalomkezelés területén működő vállalatokat. Skálázhatósága a sharding és a replikáció révén több millió dokumentummal rendelkező alkalmazásokhoz is megfelel.

Foglald össze ezt a bejegyzést a következőképpen: