В MongoDB данные имеют гибкую схему хранения документов в одной коллекции. Это означает, что документы не должны иметь одинаковый набор полей или структуру. Общие поля в документах коллекции могут хранить различные типы данных.
Советы по моделированию схемы в MongoDB
- Комбинируйте объекты в одном документе, если мы будем использовать их вместе.
- Дублируйте данные, так как время вычислений “дороже”, чем место на диске.
- Делайте join-ы во время записи, а не во время чтения.
- Используйте сложные агрегации в схеме.
- Оптимизируйте схему под наиболее частые случаи.
Пример
Для понимания того, как использовать данные советы рассмотрим простой пример:
Предположим, что нам необходимо создать базу данных (далее – БД) для хранения проектов, разработчиков, которые работают над этими проектами. Есть следующие требования:
- Каждый проект имеет уникальное имя и описание
- Каждый проект имеет много разработчиков.
Если бы мы использовали стандартную реляционную БД, то наша структура таблиц была бы, примерно, следующей:
В MongoDB у нас будет одна коллекция проектов со следующей структурой:
{
_id: PROJECT_ID
name: NAME_OF_PROJECT,
developers: [
{
name:'DEVELOPER_NAME',
},
{
name: 'DEVELOPER_NAME'
}
]
}
На этом мы заканчиваем изучение моделирования данных в MongoDB.
В следующей статье мы рассмотрим процесс создания БД.