MongoDB е система за управление на база данни с отворен код (DBMS), която използва документно-ориентиран модел на данни. Счита се за NoSQL база данни, тъй като не използва релационния модел и следователно не използва SQL като свой език за заявки.
Документно-ориентираният модел позволява на MongoDB да съхранява полуструктурирани данни, които не изискват фиксирана схема. Може да постигне това чрез използването на JSON документи.
MongoDB се използва от някои от най-големите компании в света, включително Facebook, Google, Nokia, MTV Networks, Cisco, Forbes и много други.
MongoDB също е многоплатформена СУБД, която в момента поддържа Windows, Mac, Solaris и различни Linux дистрибуции към момента на писане.
Базата данни MongoDB е различна от релационната база данни по това, че MongoDB използва документно-ориентиран модел за съхранение на данни. В документно-ориентирания модел данните се съхраняват в документи от колекция. В релационния модел данните се съхраняват в редове на таблица.
Колекциите
В MongoDB колекцията е група документи. Колекцията обикновено съдържа документи, които имат подобна тема (като потребители, продукти, публикации и т.н.).
Следователно колекциите в много отношения са подобни на таблиците от релационния модел.
Документите
В MongoDB документите се съхраняват като JSON документи. JSON (JavaScript Object Notation) е стандарт, който улеснява обмена на данни. JSON документите са подобни на XML документите, тъй като данните могат да бъдат представени по йерархичен начин и могат да се четат както от хора, така и от компютри.
Ето пример за JSON документ. Ето как изглеждат документите в база данни MongoDB.
<пред>{ име на изпълнител:"Deep Purple", албуми :[ { албум :"Machine Head", година:1972 г., жанр:"рок" }, { албум :"Stormbringer", година:1974 г., жанр:"рок" } ] }
_id
полето е уникалният идентификатор за документ. MongoDB позволява всеки документ да бъде извлечен/препратен с помощта на това поле. Можете да предоставите това или да оставите MongoDB да го генерира.
С помощта на JSON резултатите от заявките могат лесно да бъдат анализирани, с малка или никаква трансформация, директно от JavaScript и най-популярните езици за програмиране. Това е така, защото JSON документите използват конвенции за име/двойка и масиви, които са познати на повечето популярни езици за програмиране като C, C++, C#, Java, JavaScript, Perl, Python и много други. Това намалява количеството бизнес логика, която трябва да бъде вградена в приложения, които използват MongoDB.
Зад кулисите MongoDB всъщност съхранява JSON документите в двоично кодиран формат, наречен BSON. BSON разширява JSON чрез поддържане на допълнителни типове данни и за да бъде ефективен за кодиране и декодиране в рамките на различни езици.
Без схема
Всеки JSON документ в колекция може да съдържа своя собствена структура. Следователно няма фиксирана схема, която да ограничава типа данни, които могат да бъдат въведени в база данни MongoDB.
Това е в контраст с релационна база данни, където първо трябва да създадете схемата (т.е. да дефинирате таблици, колони, типове данни и т.н.), преди да въведете каквито и да било данни. Ако данните не се придържат към схемата, те не влизат в базата данни.
В база данни на MongoDB няма правило, което да казва кои полета или колко полета трябва да има всеки документ. Например, един документ от колекция може да съдържа име, адрес и телефонен номер, докато друг документ може да съдържа име и имейл адрес.