
Маленькая книга о MongoDB — введение в документы, запросы, обновления и моделирование данных. Автор — Karl Seguin, перевод — @jsmarkus. Читайте по порядку: введение, основы, обновление, выборки, моделирование, выбор MongoDB, агрегирование, инструментарий.
Условия использования и участники перевода. Книга доступна для некоммерческого чтения по CC BY-NC 3.0.
Как читать книгу
Для упражнений нужны базовое понимание JavaScript-объектов, установленная MongoDB и оболочка mongosh. Создайте отдельную базу learn: в примерах есть удаление документов и полная замена содержимого. Если задача только познакомиться с моделью данных, сначала прочитайте введение и главу о моделировании, а команды попробуйте позже на учебном наборе.
- Введение — что такое документная база, чем драйвер приложения отличается от оболочки и как подготовить локальное окружение.
- Основы — база, коллекция, документ,
_id, вставка и фильтры. Здесь создаётся набор единорогов, который используется в следующих упражнениях. - Обновление — разница между полной заменой и изменением полей,
$set,$inc,$push, upsert и массовая запись. - Осваиваем Find — проекция полей, курсор, сортировка, пагинация и точный подсчёт документов. Полезно перед проектированием списка в приложении.
- Моделирование данных — когда встраивать данные, когда хранить ссылку, как учитывать
$lookupи размер документа. Примеры связей сотрудников и менеджеров показывают компромиссы модели. - Когда использовать MongoDB — выбор хранилища, подтверждение записи, устойчивость, транзакции, поиск и геоданные. Это критерии решения, а не обещание выигрыша для любого проекта.
- MapReduce и агрегирование — построение дневного отчёта просмотров, ключ группировки и свёртка. Поддерживаемый pipeline решает ту же задачу, что исторический пример MapReduce.
- Производительность и инструментарий — создание индекса, чтение плана запроса, профилирование и учебное резервное копирование с проверкой восстановления.
- Заключение — небольшой проект для закрепления и следующий шаг к драйверу приложения.
Если пришли с конкретной задачей
Нужно изменить одно поле, сохранив остальные? Начните с главы об обновлении. Страница списка показывает только часть полей или сортирует нестабильно? Откройте главу Find. Документ растёт вместе со всеми комментариями? Сначала изучите моделирование, а не добавляйте индекс наугад. Медленный запрос уже существует? Перейдите к индексу и explain, сохранив исходный запрос для сравнения.
У книги есть страница авторства, переводчиков и лицензии. Сохранённый номер главы позволяет сопоставлять старые ссылки с нужной темой; дополнительные упражнения связаны с тем же учебным набором данных.