English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Основы MongoDB

Документированная база данных MongoDB

Введение в MongoDB

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

Что такое MongoDB

MongoDB является программой базы данных, написанной на языке C++.

  • Бесплатно (бесплатно) – Вы не платите за использование его в приложении.

  • Открытый исходный код (открытый исходный код) – Открываемый исходный код означает, что сообщество разработчиков вносит вклад в разработку программы MongoDB.

  • Многоплатформенный (работает на платформе, например, Linux) – MongoDB может работать на других платформах (Windows, MacOS и т.д.) без необходимости изменения кода.

  • Документо-ориентированный (хранение данных в формате JSON) – MongoDB хранит записи в формате JSON (например, документы). Это имеет много преимуществ. Одним из значительных преимуществ является то, что добавление новых функций (например, столбцов в реляционной базе данных) не требует труда.

  • NoSQL(не только SQL) – MongoDB использует документо-ориентированную базу данных, где каждый документ является ключом с сложными значениями. Значение документа может содержать несколько ключей-значений.

База данных

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

Коллекция

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

Документ

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

В таблице ниже показано соответствие между терминами RDBMS и MongoDB.

Система управления реляционной базой данныхMongoDB
База данныхБаза данных
ТаблицаКоллекция

Тупль (строка)

Документ
СтолбцыПоля
Связи таблицВстроенные документы
Обязательное правило основного ключаОсновной ключ (по умолчанию предоставляемый MongoDB)
Сервер базы данных и клиент
mysqld / Oraclemongod
mysql / sqlplusmongo

Пример документа

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

{
   _id: ObjectId(7df78ad8902c)
   заголовок: 'Обзор MongoDB', 
   описание: 'MongoDB не sql база данных',
   автор: 'Основной курс',
   ссылка: 'https://ru.oldtoolbag.com',
   теги: ['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 предоставит уникальный id для каждого документа. Первые 4 байта используются для текущей метки времени, следующие 3 байта используются для идентификатора машины, следующие 2 байта используются для идентификатора процесса сервера MongoDB, оставшиеся 3 байта - это простое значение increments.