MongoDB | |
---|---|
Тып | NoSQL сістэма кіравання базамі даных |
Распрацоўшчык | MongoDB Inc.[d] |
Напісана на | C++, JavaScript, C і Python[2] |
Аперацыйная сістэма | Linux, macOS, Windows і OpenBSD |
Першы выпуск | 2009 |
Апошняя версія |
|
Ліцэнзія | Server Side Public License[d][3][4] |
Сайт | mongodb.com (англ.) |
Медыяфайлы на Вікісховішчы |
MongoDB — гэта кросплатформавая дакументаарыентаваная сістэма кіравання базамі даных. З’яўляецца NoSQL-сістэмай і выкарыстоўвае дакументы, падобныя на JSON для захавання даных. Версіі MongoDB ліцэнзуюцца ў адпаведнасці з ліцэнзіяй SSPL, якая лічыцца несвабоднай з-за абмежаванняў у выкарыстанні, аднак прадастаўляе доступ да зыходнага кода. MongoDB з’яўляецца членам альянсу MACH.
Амерыканская кампанія 10gen пачала распрацоўку MongoDB у 2007 годзе ў якасці кампанента запланаванай PaaS-платформы.
У 2009 годзе кампанія перайшла на мадэль распрацоўкі з адкрытым зыходным кодам, пры гэтым прапаноўваючы камерцыйную падтрымку і іншыя паслугі.
У 2013 годзе 10gen змяніла назву на MongoDB Inc.[5]
8 лістапада 2018 г. у версіі 4.0.4 ліцэнзія праграмнага забеспячэння была зменена з AGPL 3.0 на SSPL.[6] [7]
Дакумент MongoDB можа быць праіндэксаваны першаснымі (англ.: primary) і другаснымі (англ.: secondary) індэксамі.
MongoDB забяспечвае высокую даступнасць (англ.: high availability) з выкарыстаннем набораў рэплік. [8] Набор рэплік складаецца з дзвюх ці больш копій. Кожная рэпліка можа выступаць у ролі асноўнай або другаснай ў любы час. Усе запісы і чытанні выконваюцца на асноўнай рэпліцы па змоўчанні. Другасныя рэплікі захоўваюць копію даных асноўнай.
MongoDB гарызантальна маштабуецца з выкарыстаннем сегментавання (англ.: sharding). [9] Карыстальнік выбірае ключ фрагмента, які вызначае, як будуць размеркаваны даныя ў калекцыі. Даныя разбіваюцца на дыяпазоны (на аснове ключа сегмента) і размяркоўваюцца па некалькіх фрагментах.
MongoDB можна выкарыстоўваць як файлавую сістэму пад назвай GridFS з функцыямі балансіроўкі нагрузкі і рэплікацыі даных на некалькіх машынах для захоўвання файлаў.
Мову праграмавання JavaScript можна выкарыстоўваць у запытах і функцыях агрэгацыі, а таксама адпраўляць код JavaScript непасрэдна ў базу даных для выканання.
MongoDB сцвярджае, што цалкам падтрымлівае шматдакументныя транзакцыі ACID пасля выпуску версіі 4.0 у чэрвені 2018 г.[10] Аднак гэтае сцвярджэнне не цалкам адпавядае рэчаіснасці, бо MongoDB парушае правіла ізаляцыі транзакцый узроўню SNAPSHOT.[11]