MongoDB - Обзор

MongoDB - это кроссплатформенная документно-ориентированная база данных, которая обеспечивает высокую производительность, доступность и простую масштабируемость. MongoDB работает над концепцией коллекции и документа.

База данных

База данных - это физический контейнер для коллекций. Каждая база данных получает свой собственный набор файлов в файловой системе. Один сервер MongoDB обычно имеет несколько баз данных.

Коллекция

Коллекция - это группа документов MongoDB. Это эквивалент таблицы СУБД. Коллекция существует в одной базе данных. Коллекции не применяют схему. Документы в коллекции могут иметь разные поля. Как правило, все документы в коллекции имеют схожие или связанные цели.

Документ

Документ - это набор пар ключ-значение. Документы имеют динамическую схему. Динамическая схема означает, что документы в одной коллекции не обязательно должны иметь одинаковый набор полей или структуру, а общие поля в документах коллекции могут содержать разные типы данных.

В следующей таблице показана взаимосвязь терминологии СУБД с MongoDB.

СУБД MongoDB
База данных База данных
Стол Коллекция
Кортеж / строка Документ
столбец Поле
Присоединение к таблице Встроенные документы
Основной ключ Первичный ключ (ключ по умолчанию _id, предоставляемый самим MongoDB)
Сервер базы данных и клиент
mysqld / Oracle монгод
mysql / sqlplus монго

Образец документа

В следующем примере показана структура документа сайта блога, которая представляет собой просто пару значений ключа, разделенных запятыми.

{
   _id: ObjectId(7df78ad8902c)
   title: 'MongoDB Overview', 
   description: 'MongoDB is no sql database',
   by: 'tutorials point',
   url: 'http://www.tutorialspoint.com',
   tags: ['mongodb', 'database', 'NoSQL'],
   likes: 100, 
   comments: [	
      {
         user:'user1',
         message: 'My first comment',
         dateCreated: new Date(2011,1,20,2,15),
         like: 0 
      },
      {
         user:'user2',
         message: 'My second comments',
         dateCreated: new Date(2011,1,25,7,45),
         like: 5
      }
   ]
}

_idпредставляет собой шестнадцатеричное число размером 12 байтов, обеспечивающее уникальность каждого документа. Вы можете указать _id при вставке документа. Если вы не предоставите, MongoDB предоставляет уникальный идентификатор для каждого документа. Эти 12 байтов: первые 4 байта для текущей метки времени, следующие 3 байта для идентификатора машины, следующие 2 байта для идентификатора процесса сервера MongoDB и оставшиеся 3 байта представляют собой простое инкрементное ЗНАЧЕНИЕ.