MongoDB | |
---|---|
Típusú | dokumentum-orientált DBMS |
Fejlesztő | MongoDB |
Beírva | C++ , C és JavaScript |
Operációs rendszer | Linux , macOS , Microsoft Windows és OpenBSD |
Első kiadás | 2009 |
legújabb verzió |
|
Állapot | Aktív |
Engedély | Server Side Public License ( SSPL ), korábban GNU AGPL (DBMS) és Apache License (illesztőprogramok) |
Weboldal | mongodb.com |
Médiafájlok a Wikimedia Commons oldalon |
A MongoDB egy dokumentum alapú adatbázis-kezelő rendszer , amely nem igényli a táblaséma leírását. A NoSQL rendszerek egyik klasszikus példájának tekinthető , JSON - szerű dokumentumokat és adatbázissémát használ. C++ nyelven írva . A webfejlesztésben használatos, különösen a JavaScript - orientált MEAN veremben .
A rendszer támogatja az ad-hoc lekérdezéseket: adott dokumentummezőket és egyéni JavaScript függvényeket tudnak visszaadni . A reguláris kifejezések keresése támogatott. A lekérdezést úgy is beállíthatja, hogy véletlenszerű eredményhalmazt adjon vissza [2] .
Támogatják az indexeket .
A rendszer képes működni egy sor replikával [3] , azaz két vagy több adatmásolatot tartalmazhat különböző csomópontokon. Minden replikakészlet-példány bármikor működhet elsődleges vagy másodlagos replikaként. Alapértelmezés szerint minden olvasás és írás az elsődleges replikára történik. A kiegészítő replikák naprakészen tartják az adatok másolatait. Abban az esetben, ha az elsődleges replika meghiúsul, a replikakészlet választja ki, hogy a replikák közül melyik legyen az elsődleges. A másodlagos replikák opcionálisan az olvasási műveletek forrásai lehetnek.
A rendszer vízszintesen méreteződik az adatbázis-objektumok felosztásának technikájával – elosztva részeiket a fürt különböző csomópontjai között. Az adminisztrátor kiválaszt egy felosztási kulcsot, amely meghatározza azokat a feltételeket, amelyek alapján az adatok felosztásra kerülnek a csomópontok között (a felosztási kulcs hash értékeitől függően). Azáltal, hogy minden egyes fürtcsomópont fogadja a kéréseket, terheléselosztás érhető el .
A rendszer fájltárolóként használható terheléselosztással és adatreplikációval (a Grid File System [4] szolgáltatása; a MongoDB meghajtókkal együtt szállítjuk). Szoftvereszközök állnak rendelkezésre a fájlokkal és azok tartalmával való munkához. A GridFS-t az Nginx [5] és a lighttpd bővítményei használják . [6] A GridFS részekre osztja a fájlt, és minden részt külön dokumentumként tárol. [7] .
Működhet a MapReduce paradigma szerint . Az adatösszesítéshez a GROUP BY SQL kifejezés analógja áll rendelkezésre; Az aggregációs operátorok Unix-folyamatokhoz hasonlóan láncolhatók . A keretrendszernek van egy operátora is $lookupa feltöltéssel és statisztikai műveletekkel, például a szórással kapcsolatos dokumentumok összekapcsolására .
A JavaScript támogatott lekérdezésekben, összesítő függvényekben (például a MapReduce-ban).
A rögzített méretű gyűjtemények támogatottak. Az ilyen gyűjtemények megőrzik a beillesztési sorrendet, és gyűrűpufferként viselkednek, amikor elérik az adott méretet .
2018 júniusában (a 4.0-s verzióban) hozzáadásra került az ACID [8] követelményeinek megfelelő tranzakciók támogatása .
Vannak hivatalos illesztőprogramok a főbb programozási nyelvekhez ( C , C++ , C# , Go , Java , Node.js , Perl , PHP , Python , Ruby , Rust , Scala , Swift ). Számos nem hivatalos vagy közösség által támogatott illesztőprogram is létezik más programozási nyelvekhez és keretrendszerekhez.
Az adatbázis fő felülete a mongo shell volt . A MongoDB 3.2-től kezdve a "MongoDB Compass" grafikus héjként kerül szállításra. Vannak olyan termékek és harmadik féltől származó projektek, amelyek GUI-eszközöket kínálnak adminisztrációhoz és adatmegtekintéshez.
A MongoDB eredetileg a GNU Affero General Public License 3. verziója alatt jelent meg. A nyelvi illesztőprogramok az Apache licenc alatt érhetők el. A MongoDB ingyenesen elérhető az Affero General Public License (AGPL) GNU alatt. 2018 októberében a fejlesztő cég bejelentette, hogy áttér az AGPL-hez képest szigorúbb SSPL (Server Side Public License) copyleft licencre [9] [10] . Ezt követően az Open Source Initiative és a Free Software Foundation képviselői megkezdték az új licenc vizsgálatát a nyílt és szabad szoftver definícióinak való megfelelés érdekében [11] .
Ezenkívül a MongoDB kiadja a DBMS kereskedelmi verzióját, amely további szolgáltatásokat (például SASL, LDAP, Kerberos, SNMP-vel való integrációt), felügyeleti eszközöket, megfigyelést és biztonsági mentést, valamint támogatást tartalmaz.
A MongoDB a következő felhasználásokra alkalmas:
A 10gen 2007-ben kezdte fejleszteni a MongoDB-t egy tervezett platform összetevőjeként, mint szolgáltatási termék. 2009-ben a vállalat nyílt forráskódú termékfejlesztési modellre tért át, amely kereskedelmi támogatást és egyéb szolgáltatásokat kínál. 2013. augusztus 27-én a 10gen nevét MongoDB, Inc-re változtatta.
2017. október 20-án a MongoDB a NASDAQ-on tőzsdén jegyzett társasággáMDB vált, ticker szimbólummal .
2022. március 10-én a MongoDB figyelmeztette oroszországi és fehéroroszországi felhasználóit, hogy a MongoDB Atlas platformon (az adatbázis AWS, Microsoft Azure és Google Cloud Platform által támogatott felhőverziója) tárolt adataik megsemmisülnek [12] .
A következő parancsok állíthatók be az adatbázis-rendszer kezelésére és adminisztrálására:
Adatbázis-kezelő rendszerek (DBMS) | |
---|---|
Kliens-szerver | |
Motorok | |
Fájlszerver |