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