MongoDB

MongoDB
Typ dokumentově orientované DBMS
Vývojář MongoDB
Zapsáno v C++ , C a JavaScript
Operační systém Linux , macOS , Microsoft Windows a OpenBSD
První vydání 2009
Nejnovější verze
Stát Aktivní
Licence Server Side Public License ( SSPL ), dříve GNU AGPL (DBMS) a Apache License (ovladače)
webová stránka mongodb.com
 Mediální soubory na Wikimedia Commons

MongoDB  je systém správy databází založený na dokumentech , který nevyžaduje popis schématu tabulky. Považován za jeden z klasických příkladů systémů NoSQL , používá dokumenty podobné JSON a schéma databáze. Napsáno v C++ . Používá se při vývoji webu, zejména v rámci zásobníku MEAN orientovaného na JavaScript .

Funkce

Systém podporuje ad-hoc dotazy: mohou vracet konkrétní pole dokumentu a vlastní funkce JavaScriptu . Je podporováno vyhledávání regulárních výrazů. Dotaz můžete také nakonfigurovat tak, aby vracel náhodnou sadu výsledků [2] .

Existuje podpora pro indexy .

Systém může pracovat se sadou replik [3] , tedy obsahovat dvě nebo více kopií dat na různých uzlech. Každá instance sady replik může kdykoli fungovat jako primární nebo sekundární replika. Všechna čtení a zápisy se standardně provádějí do primární repliky. Pomocné repliky udržují kopie dat aktuální. V případě, že primární replika selže, sada replik vybere, která z replik se má stát primární. Sekundární repliky mohou být volitelně zdrojem pro operace čtení.

Systém se horizontálně škáluje pomocí techniky shardingu databázových objektů – distribuce jejich částí mezi různé uzly clusteru. Správce vybere shardovací klíč, který určuje kritéria, podle kterých budou data rozdělena mezi uzly (v závislosti na hodnotách hash shardingového klíče). Tím, že každý uzel klastru může přijímat požadavky, je dosaženo vyrovnávání zátěže .

Systém lze použít jako úložiště souborů s vyrovnáváním zátěže a replikací dat (funkce Grid File System [4] ; dodávaná s ovladači MongoDB). K dispozici jsou softwarové nástroje pro práci se soubory a jejich obsahem. GridFS se používá v pluginech pro Nginx [5] a lighttpd . [6] GridFS rozdělí soubor na části a každou část uloží jako samostatný dokument. [7] .

Může fungovat podle paradigmatu MapReduce . Pro agregaci dat je k dispozici analog SQL výrazu GROUP BY; agregační operátory lze řetězit jako unixové potrubí . Rámec má také operátor $lookuppro propojení dokumentů o nahrávání a statistických operacích, jako je standardní odchylka .

JavaScript je podporován v dotazech, agregačních funkcích (například v MapReduce).

Jsou podporovány kolekce s pevnou velikostí. Takové kolekce zachovávají pořadí vložení a chovají se jako kruhová vyrovnávací paměť , když dosáhnou dané velikosti .

V červnu 2018 (ve verzi 4.0) byla přidána podpora pro transakce, které splňují požadavky ACID [8] .

Existují oficiální ovladače pro hlavní programovací jazyky ( C , C++ , C# , Go , Java , Node.js , Perl , PHP , Python , Ruby , Rust , Scala , Swift ). Existuje také velké množství neoficiálních nebo komunitou podporovaných ovladačů pro jiné programovací jazyky a rámce.

Hlavním rozhraním k databázi byl mongo shell . Od MongoDB 3.2 je "MongoDB Compass" dodáván jako grafický shell. Existují produkty a projekty třetích stran, které nabízejí nástroje GUI pro správu a prohlížení dat.

Licence

MongoDB byl původně vydán pod licencí GNU Affero General Public License verze 3. Jazykové ovladače jsou dostupné pod licencí Apache. MongoDB je k dispozici zdarma pod licencí Affero General Public License (AGPL) GNU. V říjnu 2018 vývojářská společnost oznámila přechod na přísnější copyleftovou licenci SSPL (Server Side Public License) ve srovnání s AGPL [9] [10] . V návaznosti na to byla zahájena studie nové licence zástupci Open Source Initiative a Free Software Foundation z hlediska souladu s definicemi otevřeného a svobodného softwaru [11] .

Kromě toho MongoDB vydává komerční verzi DBMS, která obsahuje další funkce (například integraci s SASL, LDAP, Kerberos, SNMP), nástroje pro správu, monitorování a zálohování a podporu.

Případy použití

MongoDB je vhodný pro následující použití:

Společnost

10gen začal vyvíjet MongoDB v roce 2007 jako součást plánované platformy jako produkt služeb. V roce 2009 společnost přešla na model vývoje produktů s otevřeným zdrojovým kódem, který nabízí komerční podporu a další služby. 27. srpna 2013 změnila společnost 10gen svůj název na MongoDB, Inc.

Dne 20. října 2017 se MongoDB stala veřejně obchodovanou společností kótovanou na NASDAQ se symbolem tickeru MDB.

10. března 2022 společnost MongoDB varovala své uživatele v Rusku a Bělorusku, že jejich data uložená na platformě MongoDB Atlas (cloudová verze databáze podporovaná AWS, Microsoft Azure a Google Cloud Platform) budou zničena [12] .

Nástroje

Pro správu a administraci databázového systému lze nastavit následující příkazy:

Poznámky

  1. Poznámky k vydání pro MongoDB 6.0 – 2022.
  2. Příkaz Najít MongoDB . Získáno 9. března 2017. Archivováno z originálu 18. října 2016.
  3. MongoDB. Úvod do replikace . MongoDB. Získáno 9. března 2017. Archivováno z originálu 11. dubna 2016.
  4. MongoDB. Článek GridFS na MongoDB Developer's Manual . MongoDB. Získáno 9. března 2017. Archivováno z originálu 17. ledna 2013.
  5. NGINX plugin pro zdrojový kód MongoDB . GitHub . Získáno 9. března 2017. Archivováno z originálu 11. dubna 2016.
  6. plugin lighttpd pro zdrojový kód MongoDB (downlink) . Bitbucket . Získáno 9. března 2017. Archivováno z originálu 7. srpna 2011. 
  7. Malick Md. Přehled MongoDB . Expertstown . Získáno 9. března 2017. Archivováno z originálu dne 5. března 2014.
  8. Transakce  _  _ . MongoDB. Staženo 12. 12. 2018. Archivováno z originálu 18. 12. 2018.
  9. mongodb/  mongo . GitHub. Získáno 19. října 2018. Archivováno z originálu 16. září 2020.
  10. MongoDB vydává novou serverovou veřejnou licenci pro komunitní server  MongoDB , MongoDB (  16. října 2018). Archivováno z originálu 16. října 2018. Staženo 19. října 2018.
  11. OpenNews: MongoDB převedeno na novou licenci, jejíž otevřenost ještě nebyla testována . opennet.ru _ Získáno 19. října 2018. Archivováno z originálu dne 20. října 2018.
  12. MongoDB zničí všechna data Rusů a Bělorusů Archivováno 11. března 2022 na Wayback Machine // SecurityLab.ru

Literatura

Odkazy