Вопрос проверяет понимание документной модели MongoDB, формата хранения и базовых сущностей (collection, document, index).
MongoDB хранит данные в виде документов, сгруппированных в коллекции. Документы похожи на JSON, но внутри используются BSON, чтобы поддерживать типы и эффективную сериализацию. Для ускорения запросов используются индексы. Для отказоустойчивости применяется replica set, а для масштабирования — шардинг.
MongoDB — документно-ориентированная база данных: она хранит данные не в строках таблиц, а в документах, которые могут содержать вложенные структуры.
Определение:
Документ — основная единица хранения, набор полей и значений, допускающий вложенность.
Пример (упрощенно):
{
"_id": "u1",
"name": "Ivan",
"tags": ["go", "backend"],
"profile": { "city": "Ufa" }
}
Особенности:
схема гибкая (поля могут отличаться у разных документов)
вложенные объекты и массивы — нормальная модель, а не “костыль”
Коллекция — аналог таблицы, но без жесткой схемы.
Документы одной коллекции обычно “похожи”, но не обязаны быть идентичны.
MongoDB хранит документы в BSON:
бинарный формат (эффективнее JSON для хранения/парсинга)
поддержка типов (например, даты, бинарные данные)
удобен для индексации и хранения
Важно понимать: приложение чаще оперирует JSON-подобным видом, но на диске и по сети часто работает BSON.
Индексы в MongoDB нужны для ускорения выборок, как и в реляционных БД.
Типовые индексы:
single-field
compound
text
TTL
Пример:
db.users.createIndex({ name: 1 })
Без индекса запрос может перейти в full scan коллекции, что плохо масштабируется.
Replica set — группа узлов:
primary принимает запись
secondaries реплицируют данные
при отказе primary выполняется election нового primary
Шардирование распределяет коллекции по шардам по shard key, чтобы масштабировать объем и нагрузку.
MongoDB удобно использовать, когда:
данные естественно “документные” и вложенные
схема часто эволюционирует
нужен быстрый доступ к объекту целиком
Но важно аккуратно выбирать модель документов и индексы, иначе производительность быстро деградирует.
MongoDB хранит данные в коллекциях документов в формате BSON, ускоряет доступ через индексы, обеспечивает отказоустойчивость через replica set и масштабирование через шардинг.