Руководство по MongoDB. Моделирование данных

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


Советы по моделированию схемы в MongoDB

  • Комбинируйте объекты в одном документе, если мы будем использовать их вместе.
  • Дублируйте данные, так как время вычислений “дороже”, чем место на диске.
  • Делайте join-ы во время записи, а не во время чтения.
  • Используйте сложные агрегации в схеме.
  • Оптимизируйте схему под наиболее частые случаи.

Пример

Для понимания того, как использовать данные советы рассмотрим простой пример:

Предположим, что нам необходимо создать базу данных (далее – БД) для хранения проектов, разработчиков, которые работают над этими проектами. Есть следующие требования:

    Каждый проект имеет уникальное имя и описание

  • Каждый проект имеет много разработчиков.

Если бы мы использовали стандартную реляционную БД, то наша структура таблиц была бы, примерно, следующей:

sqlschemaprojects

В MongoDB у нас будет одна коллекция проектов со следующей структурой:


{
   _id: PROJECT_ID
   name: NAME_OF_PROJECT, 
   developers: [	
      {
         name:'DEVELOPER_NAME',
      },
      {
         name: 'DEVELOPER_NAME'
      }
   ]
}

На этом мы заканчиваем изучение моделирования данных в MongoDB.
В следующей статье мы рассмотрим процесс создания БД.