Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

MongoDB: полное руководство

Мощная и масштабируемая система управления базами данных
Покупка
Артикул: 748341.01.99
Доступ онлайн
1 499 ₽
В корзину
Эта книга представляет собои исчерпывающее руководство по раооте с MongoDB 4.2 - мощной документоориентированной системой управления базами данных. Авторы, внесшие личный вклад в создание и развитие MongoDB, начинают описание системы с самых азов (история создания, базовая терминология) и постепенно переходят к более сложным темам (выполнение запросов, индексация, агрегирование, транзакции, наборы реплик, управление операциями, шардинг и администрирование данных, долговечность, мониторинг и безопасность). Читатель получит конкретные советы по написанию приложения, которое хорошо работает с MongoDB, выяснит, какие системные настройки следует учитывать при ее развертывании и как устанавливать MongoDB в Windows, OS X и Linux. Издание предназначено для разработчиков объемных баз данных, масштабирование которых является одной из приоритетных задач.
Брэдшоу, Ш. MongoDB: полное руководство : научно-популярное издание / Ш. Брэдшоу, И. Брэзил, К. Ходоров ; пер. с англ. Д. А. Беликова. - Москва : ДМК Пресс, 2020. - 540 с. - ISBN 978-5-97060-792-3. - Текст : электронный. - URL: https://znanium.com/catalog/product/1210677 (дата обращения: 25.04.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов. Для полноценной работы с документом, пожалуйста, перейдите в ридер.
Шеннон Брэдшоу, Йон Брэзил, Кристина Ходоров

MongoDB:  
полное руководство

MongoDB: 
The Definitive Guide

Powerful and Scalable Data Storage

Shannon Bradshaw, Eoin Brazil,  
and Kristina Chodorow

Beijing  •  Boston  •  Farnham  •  Sebastopol  •  Tokyo

THIRD EDITION

Москва, 2020

Шеннон Брэдшоу, Йон Брэзил  
и Кристина Ходоров

MongoDB: 
полное руководство

Мощная и масштабируемая  
система управления базами данных

Перевод с английского  Беликова Д. А.

УДК   004.65
ББК   32.972.134
Б87

Б87   Шеннон Брэдшоу, Йон Брэзил, Кристина Ходоров
MongoDB: полное руководство. Мощная и масштабируемая система 
управления базами данных / пер. с англ. Д. А. Беликова – М.: ДМК 
Пресс, 2020. – 540 с.: ил.

            ISBN 978-5-97060-792-3

Эта книга представляет собой исчерпывающее руководство по работе с 
MongoDB 4.2 – мощной документоориентированной системой управления базами данных. Авторы, внесшие личный вклад в создание и развитие MongoDB, 
начинают описание системы с самых азов (история создания, базовая терминология) и постепенно переходят к более сложным темам (выполнение запросов, 
индексация, агрегирование, транзакции, наборы реплик, управление операциями, шардинг и администрирование данных, долговечность, мониторинг и 
безопасность).
Читатель получит конкретные советы по написанию приложения, которое 
хорошо работает с MongoDB, выяснит, какие системные настройки следует 
учитывать при ее развертывании и как устанавливать MongoDB в Windows, 
OS X и Linux.
Издание предназначено для разработчиков объемных баз данных, масштабирование которых является одной из приоритетных задач.

 
 
 
 
 
 
 
 
       УДК  004.65
ББК  32.972.134

Original English language edition published by O’Reilly Media, Inc. Copyright © 2020 
Shannon Bradshaw and Eoin Brazil. All rights reserved. Russian-language edition copyright 
© 2020 by DMK Press. All rights reserved.

Все права защищены. Любая часть этой книги не может быть воспроизведена в 
какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав.
Материал, изложенный в данной книге, многократно проверен. Но, поскольку вероятность технических ошибок все равно существует, издательство не может гарантировать 
абсолютную точность и правильность приводимых сведений. В связи с этим издательство не несет ответственности за возможные ошибки, связанные с использованием книги.

ISBN 978-1-49195-446-1 (англ.)       © 2020 Shannon Bradshaw and Eoin Brazil. All rights reserved.
ISBN 978-5-97060-792-3 (рус.)         © Оформление, перевод на русский язык, издание, 
 
    ДМК Пресс, 2020

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

Анне, Сигурни, Грэму и Беккету – Шэннон
И Джемме, Клоде и Броне – Йон

Оглавление

Предисловие ..................................................................................................... 16

Как устроена эта книга ...................................................................................16
Начало работы с MongoDB .............................................................................16
Разработка с MongoDB ...................................................................................16
Репликация .....................................................................................................16
Шардинг ..........................................................................................................17
Администрирование приложений ................................................................17
Администрирование сервера ........................................................................17
Приложения ....................................................................................................17
Обозначения, принятые в этой книге ...........................................................17
Использование примеров кода .....................................................................18
Обучение в режиме онлайн  ..........................................................................19

Предисловие от издательства ....................................................................... 20

Отзывы и пожелания ......................................................................................20
Список опечаток .............................................................................................20
Нарушение авторских прав ...........................................................................20

Часть I  
Введение в MongoDB ...................................................................................21

Глава 1. Введение ............................................................................................. 22

Простота использования .......................................................................... 22
Разработана для масштабирования......................................................... 22
Богатство функций… ................................................................................ 24
…Без ущерба для скорости ....................................................................... 25
Философия ................................................................................................. 25

Глава 2. Начало работы ................................................................................... 26

Документы ................................................................................................. 26
Коллекции .................................................................................................. 27

Динамические схемы .....................................................................................28
Именование ....................................................................................................29

Базы данных .............................................................................................. 30
Начало работы с MongoDB ....................................................................... 31
Знакомство с оболочкой MongoDB .......................................................... 32

Запуск оболочки .............................................................................................33
Клиент MongoDB.............................................................................................34
Основные операции с оболочкой ..................................................................35

Оглавление  7

Типы данных ............................................................................................. 37

Основные типы данных .................................................................................37
Даты .................................................................................................................39
Массивы ..........................................................................................................40
Вложенные документы ..................................................................................40
_id и ObjectId ...................................................................................................41

Использование оболочки MongoDB ......................................................... 43

Советы по использованию оболочки ............................................................44
Запуск скриптов с помощью оболочки .........................................................45
Создание файла .mongorc.js  ..........................................................................47
Настройка приглашения ................................................................................48
Редактирование сложных переменных ........................................................49
Неудобные имена коллекций ........................................................................50

Глава 3. Создание, обновление и удаление документов ........................... 52

Вставка документов .................................................................................. 52

insertMany .......................................................................................................52
Проверка вставки ...........................................................................................56
insert ................................................................................................................56

Удаление документов ............................................................................... 56

drop  .................................................................................................................58

Обновление документов .......................................................................... 58

Замена документа ..........................................................................................59
Использование операторов обновления ......................................................61
Upsert ...............................................................................................................72
Обновление нескольких документов ............................................................75
Возврат обновленных документов ................................................................76

Глава 4. Выполнение запросов ...................................................................... 79

Знакомство с методом find ....................................................................... 79

Указываем, какие ключи нужно вернуть ......................................................80
Ограничения ...................................................................................................81

Критерии запроса ..................................................................................... 81

Условные операторы ......................................................................................81
Запросы с оператором OR ..............................................................................82
$not  .................................................................................................................83

Запросы для определенных типов ........................................................... 84

null  .................................................................................................................84
Регулярные выражения ..................................................................................84
Запросы элементов массива ..........................................................................85
Запросы по вложенным документам ............................................................91

Операторы $where .................................................................................... 93
Курсоры ...................................................................................................... 94

Ограничения, пропуск и сортировка ............................................................95

 Оглавление

Избегайте больших пропусков ......................................................................97
Бесконечные курсоры  ...................................................................................99

Часть II  
Разработка приложения ............................................................................101

Глава 5. Индексы ............................................................................................ 102

Знакомство с индексами .........................................................................102

Создание индекса .........................................................................................105
Знакомство с составными индексами ........................................................108
Как MongoDB выбирает индекс ...................................................................112
Использование составных индексов ...........................................................114
Как операторы с символом $ используют индексы ...................................135
Индексирование объектов и массивов .......................................................147
Кардинальность индекса .............................................................................150

Вывод explain............................................................................................150
Когда не стоит прибегать к индексированию ........................................160
Типы индексов .........................................................................................161

Уникальные индексы ...................................................................................161
Частичные индексы ......................................................................................164

Управление индексами............................................................................165

Идентификация индексов ...........................................................................166
Замена индексов ...........................................................................................167

Глава 6. Специальные типы индексов и коллекций ................................. 168

Геопространственные индексы ..............................................................168

Типы геопространственных запросов ........................................................169
Использование геопространственных индексов .......................................171
Составные геопространственные индексы ................................................179
Индексы 2d ....................................................................................................179

Индексы для полнотекстового поиска ...................................................182

Создание текстового индекса ......................................................................183
Поиск по тексту.............................................................................................184
Оптимизация полнотекстового поиска ......................................................187
Поиск на других языках ...............................................................................188

Ограниченные коллекции .......................................................................188

Создание ограниченных коллекций ...........................................................190
Настраиваемые курсоры ..............................................................................191

Индексы TTL .............................................................................................192
Хранение файлов с помощью GridFS ......................................................193

Начало работы с GridFS: mongofiles ............................................................193
Работа с GridFS из драйверов MongoDB ......................................................194
Что под капотом ...........................................................................................195

Оглавление  9

Глава 7. Знакомство с фреймворком агрегации ....................................... 198

Конвейеры, этапы и настраиваемые параметры ...................................198
Начало работы с этапами: знакомые операции ....................................200
Выражения ...............................................................................................206
$project ......................................................................................................207
$unwind .....................................................................................................213
Выражения массивов ...............................................................................221
Аккумуляторы ..........................................................................................227

Использование аккумуляторов в этапах с $project ....................................228

Знакомство с группировкой ....................................................................229

Поле _id в этапах $group ...............................................................................235
Сравнение $group и $project ........................................................................238

Запись результатов конвейера агрегации в коллекцию .......................241

Глава 8. Транзакции ....................................................................................... 243

Знакомство с транзакциями ...................................................................243

Определение ACID ........................................................................................244

Как использовать транзакции .................................................................244
Настройка ограничений транзакций для вашего приложения ............249

Ограничения на размер журнала операций и ограничения по времени ...249

Глава 9. Разработка приложений ................................................................ 251

Аспекты проектирования схем ...............................................................251

Шаблоны проектирования схем ..................................................................253

Нормализация и денормализация..........................................................256

Примеры представления данных ................................................................257
Кардинальность ............................................................................................262
Друзья, подписчики и другие неудобства ...................................................262

Оптимизация манипулирования данными ...........................................265

Удаление старых данных .............................................................................265

Планирование баз данных и коллекций ................................................266
Управление согласованностью................................................................267
Перенос схем ............................................................................................269
Управление схемами ...............................................................................270
Когда не стоит использовать MongoDB ..................................................270

Часть III  
Репликация....................................................................................................271

Глава 10. Настройка набора реплик ........................................................... 272

Знакомство с репликацией .....................................................................272

 Оглавление

Настройка набора реплик, часть 1 ..........................................................273
Пара слов касательно работы в сети .......................................................274
Вопросы безопасности ............................................................................275
Настройка набора реплик, часть 2 ..........................................................275
Наблюдение за репликацией ..................................................................279
Изменение настройки набора реплик ....................................................285
Проектирование набора ..........................................................................287

Как работают выборы ...................................................................................289

Параметры конфигурации членов..........................................................291

Приоритет .....................................................................................................291
Скрытые члены .............................................................................................291
Арбитры ........................................................................................................292
Построение индексов ...................................................................................295

Глава 11. Компоненты набора реплик ....................................................... 296

Синхронизация ........................................................................................296

Начальная синхронизация ..........................................................................298
Репликация ...................................................................................................300
Работа с устареванием данных ....................................................................300

Тактовые сигналы ....................................................................................301

Состояния членов .........................................................................................301

Выборы .....................................................................................................303
Откаты ......................................................................................................304

Когда откаты не работают ............................................................................307

Глава 12. Подключение к набору реплик из своего приложения.......... 308

Как ведет себя соединение типа «клиент к набору реплик» .................308
Ожидание репликации при операциях записи .....................................311

Другие параметры для "w" ...........................................................................313

Гарантии специализированной репликации .........................................313

По одному серверу на каждый центр обработки данных ..........................313
Гарантия большинства нескрытых членов .................................................315
Создание других гарантий ...........................................................................316

Отправка операций чтения на вторичные узлы ...................................316

Соображения по поводу согласованности ..................................................317
Вопросы нагрузки .........................................................................................317
Причины чтения с вторичных узлов ...........................................................318

Глава 13. Администрирование ..................................................................... 320

Запуск членов в автономном режиме ....................................................320
Конфигурация набора реплик .................................................................321

Создание набора реплик ..............................................................................321

Оглавление  11

Изменение членов набора ...........................................................................322
Создание более крупных наборов ...............................................................323
Принудительное переконфигурирование ..................................................323

Управление состоянием членов ..............................................................324

Превращение первичных узлов во вторичные ..........................................324
Предотвращение выборов ...........................................................................324

Мониторинг репликации ........................................................................325

Получение статуса ........................................................................................325
Визуализация графика репликации ............................................................329
Циклы репликации .......................................................................................330
Отключение цепочки ...................................................................................331
Расчет величины отставания .......................................................................331
Изменение размера журнала операций .....................................................333
Построение индексов ...................................................................................334
Бюджетная репликация ...............................................................................335

Часть IV  
Шардинг .........................................................................................................337

Глава 14. Знакомство с шардингом ............................................................. 338

Что такое шардинг? .................................................................................338

Разбираемся с компонентами кластера .....................................................339

Настройка кластера на одной машине ...................................................340

Глава 15. Конфигурирование шардинга .................................................... 352

Когда использовать шардинг ..................................................................352
Запуск серверов ........................................................................................353

Конфигурационные серверы .......................................................................353
Процессы mongos .........................................................................................355
Добавление шарда из набора реплик ..........................................................355
Добавляем емкости ......................................................................................360
Шардинг данных ...........................................................................................360
Диапазоны чанков ........................................................................................362
Расщепление чанков ....................................................................................364

Балансировщик ........................................................................................366
Сличения ..................................................................................................367
Потоки изменений ...................................................................................368

Глава 16. Выбор ключа шардинга ............................................................... 369

Подводя итоги использования ................................................................369
Иллюстрация распределений .................................................................370

Монотонно возрастающие ключи ...............................................................370
Случайно распределенные ключи ...............................................................373
Ключи с привязкой к местоположению пользователя ..............................375

 Оглавление

Стратегии..................................................................................................377

Хешированные ключи шардинга ................................................................377
Хешированные ключи шардинга для GridFS ..............................................379
Стратегия «пожарного шланга» ...................................................................380
Несколько хот-спотов ...................................................................................381

Правила и рекомендации ........................................................................382

Ограничения .................................................................................................383
Кардинальность ............................................................................................384

Управление распределением данных .....................................................385

Использование кластера для нескольких баз данных и коллекций .........385
Ручной шардинг............................................................................................387

Глава 17. Администрирование шардинга ................................................... 389

Просмотр текущего состояния ................................................................389

Получение сводки с помощью функции sh.status() ...................................389
Просмотр информации о конфигурации ...................................................392

Отслеживание сетевых подключений ....................................................399

Получение статистики о соединениях ........................................................399
Ограничение числа соединений..................................................................407

Администрирование сервера ..................................................................408

Добавление серверов ...................................................................................408
Смена серверов в шарде ..............................................................................409
Удаление шарда ............................................................................................409

Балансировка данных ..............................................................................413

Балансировщик.............................................................................................413
Изменение размера чанков .........................................................................415
Перемещение чанков ...................................................................................416
Неразделимые чанки ...................................................................................418
Обновление конфигураций .........................................................................421

Часть V  
Администрирование приложений..................................................... 423

Глава 18. Смотрим, что делает ваше приложение .................................... 424

Просмотр текущих операций ..................................................................424

Поиск проблемных операций ......................................................................428
Ложные срабатывания .................................................................................429
Предотвращение фантомных операций .....................................................429

Использование системного профилировщика ......................................430
Вычисление размеров .............................................................................434

Документы ....................................................................................................434
Коллекции .....................................................................................................434
Базы данных .................................................................................................440

Использование утилит mongotop и mongostat ......................................441

Оглавление  13

Глава 19. Обеспечение безопасности в MongoDB .................................... 444

Аутентификация и авторизация в MongoDB .........................................444

Механизмы аутентификации ......................................................................444
Авторизация .................................................................................................445
Использование сертификатов x.509 для аутентификации членов  
и клиентов ............................................................................................447

Руководство по аутентификации в MongoDB и шифрованию  
на транспортном уровне ....................................................................450
Создание центра сертификации .................................................................450
Создание и подпись сертификатов членов ................................................456
Генерация и подписание клиентских сертификатов .................................457
Создание набора реплик без включенной аутентификации  
и авторизации ......................................................................................457

Создание пользователя с правами администратора .................................458
Перезапуск набора реплик с включенной аутентификацией  
и авторизацией .....................................................................................459

Глава 20. Долговечность ............................................................................... 462

Долговечность на уровне членов с помощью журналирования ...........462
Долговечность на уровне кластера при использовании  
гарантии записи .................................................................................464
Опции w и wtimeout для параметра writeConcern .....................................464
Опция j (ведение журнала) для параметра writeConcern  ..........................465

Долговечность на уровне кластера при использовании  
гарантии чтения .................................................................................466

Долговечность транзакций с использованием гарантии записи .........467
Чего MongoDB не гарантирует ................................................................468
Проверка на предмет наличия повреждений ........................................468

Часть VI  
Администрирование сервера ..................................................................471

Глава 21. Настройка MongoDB в рабочем окружении ............................. 472

Запуск из командной строки...................................................................472

Конфигурирование на базе файлов ............................................................477

Остановка MongoDB ................................................................................478

Шифрование данных ....................................................................................480
SSL-соединения ............................................................................................481

Протоколирование ...................................................................................481

Глава 22. Мониторинг MongoDB .................................................................. 483

Мониторинг использования памяти ......................................................483

Знакомство с памятью компьютера ............................................................483

 Оглавление

Отслеживание использования памяти .......................................................484
Отслеживание отказов страницы ................................................................485
Время ожидания ввода/вывода ...................................................................487

Вычисление рабочего множества ...........................................................487

Примеры рабочего множества ....................................................................488

Отслеживание производительности ......................................................489
Отслеживание свободного пространства ...............................................491
Мониторинг репликации ........................................................................491

Глава 23. Создание резервных копий ......................................................... 495

Методы резервного копирования ...........................................................495
Резервное копирование сервера .............................................................496

Снимок файловой системы .........................................................................496
Копирование файлов данных ......................................................................500
Использование mongodump.........................................................................502

Особые факторы при копировании наборов реплик ............................505
Особые факторы при копировании разделенного кластера ................506

Резервное копирование и восстановление всего кластера .......................507
Резервное копирование и восстановление одного шарда ........................507

Глава 24. Развертывание MongoDB ............................................................ 508

Проектирование системы .......................................................................508

Выбор носителя для хранения .....................................................................508
Рекомендуемые уровни спецификации RAID ............................................509
Центральный процессор ..............................................................................510
Операционная система ................................................................................510
Объем подкачки ...........................................................................................511
Файловая система .........................................................................................512

Виртуализация .........................................................................................512

Избыточное выделение памяти ..................................................................512
Таинственная память ...................................................................................513
Обработка проблем ввода/вывода сетевого диска .....................................513
Использование несетевых дисков ...............................................................514

Конфигурирование настроек системы ...................................................515

Отключение архитектуры неравномерного доступа к памяти .................515
Упреждающее чтение ...................................................................................517
Отключение THP ..........................................................................................518
Выбор алгоритма планирования .................................................................519
Отключаем отслеживание времени доступа ..............................................520
Изменение ограничений .............................................................................520

Конфигурирование сети ..........................................................................522
Наводим порядок в системе ....................................................................524

Синхронизация часов ..................................................................................524

Оглавление  15

OOM Killer .....................................................................................................524
Отключите периодические задачи .............................................................525

Приложение А. Установка MongoDB ........................................................... 526

Выбор версии ...........................................................................................526
Установка в Windows ................................................................................527

Установка в качестве службы .......................................................................528

Установка в POSIX (Linux и Mac OS X) ....................................................528

Установка из диспетчера пакетов ...............................................................529

Приложение B. Внутреннее устройство MongoDB ................................... 531

BSON .........................................................................................................531
Проводной протокол ................................................................................532
Файлы данных ..........................................................................................532
Пространства имен ..................................................................................535
Подсистема хранения WiredTiger ...........................................................535

Об авторах ...................................................................................................... 536

Об изображении на обложке ....................................................................... 537

Предметный указатель ................................................................................. 538

Предисловие

Как устроена эта книга

Эта книга разделена на шесть частей, в которых приводятся сведения о 
разработке, администрировании и развертывании.

Начало работы с MongoDB

В главе 1 мы рассказываем о MongoDB: почему она была создана, какие 
цели пытается достичь и почему вы можете использовать ее для своего 
проекта. Более подробно мы рассмотрим главу 2, в которой представлены 
базовые понятия и словарь MongoDB. В главе 2 вы приступите к работе 
с базой данных и оболочкой. Следующие две главы посвящены основному материалу, который необходимо знать разработчикам для работы с 
MongoDB. В главе 3 мы опишем, как выполнять базовые операции записи, 
в том числе как делать это с различными уровнями безопасности и скорости. В главе 4 объясняется, как найти документы и создавать сложные 
запросы, а также рассказывается, как перебирать результаты, здесь приводятся варианты для ограничения, пропуска и сортировки результатов.

Разработка с MongoDB

В главе 5 описано, что такое индексирование и как индексировать свои 
коллекции MongoDB. В главе 6 объясняется, как использовать несколько специальных типов индексов и коллекций. В главе 7 рассматривается 
ряд методов агрегирования данных с MongoDB, включая подсчет, поиск 
различных значений, группировку документов, фреймворк агрегации и  
запись этих результатов в коллекцию. Глава 8 знакомит вас с транзакциями: что это такое, как лучше всего использовать их для своего приложения 
и как настроить. Наконец, эта часть заканчивается главой о разработке вашего приложения: в главе 9 содержатся советы по написанию приложения, которое хорошо работает с MongoDB.

Репликация

Часть, посвященная репликации, начинается с главы 10, в которой дается 
быстрый способ настроить набор реплик локально, и охватывает многие 
из доступных параметров конфигурирования. Затем в главе 11 рассматриваются различные концепции, связанные с репликацией. В главе 12 показано, как репликация взаимодействует с вашим приложением, а в главе 13 
разбираются административные аспекты запуска набора реплик.

Предисловие  17

Шардинг

Часть, посвященная шардингу, начинается с главы 14, где дается описание 
быстрой локальной настройки. Затем в главе 15 приводится обзор компонентов кластера и рассказывается, как их настроить. Глава 16 содержит 
советы по выбору ключа шардинга для различных приложений. Наконец, 
глава 17 посвящена администрированию разделенного кластера.

Администрирование приложений

В следующих двух главах рассматривается множество аспектов администрирования MongoDB с точки зрения вашего приложения. В главе 18 
обсуждается, как проанализировать то, что делает MongoDB. Глава 19 
посвя щена безопасности в MongoDb, настройке аутентификации и авторизации для вашего развертывания. В главе 20 объясняется, как MongoDB 
надежно хранит данные.

Администрирование сервера

Последняя часть посвящена администрированию сервера. В главе 21 описываются общие параметры при запуске и остановке MongoDB. В главе 22 обсуждается, что искать и как читать статистику во время мониторинга. В главе 23 описано, как сделать резервные копии и провести восстановление для 
каждого типа развертывания. Наконец, в главе 24 обсуждается ряд системных настроек, которые следует учитывать при развертывании MongoDB.

Приложения

В приложении A объясняется схема управления версиями в MongoDB и ее 
установка в Windows, OS X и Linux. Приложение B подробно описывает 
внутреннюю работу MongoDB: механизм хранения, формат данных и проводной протокол.

Обозначения, принятые в этой книге

В этой книге используются следующие типографские обозначения.

Курсив
  
Используется для обозначений новых терминов, URL-адресов, адресов 
электронной почты, имен коллекций, баз данных, файлов и расширений 
файлов.

Моноширинный шрифт
  
Используется в листингах программ, а также в абзацах для ссылки 
на элементы программы, такие как имена переменных или функ
 Предисловие

ций, утилиты командной строки, переменные среды, операторы и 
ключевые слова.

Моноширинный полужирный шрифт
  
Показывает команды или другой текст, который должен быть набран пользователем буквально.

Моноширинный курсив
  
Показывает текст, который должен быть заменен предоставленными пользователем значениями или значениями, определенными 
контекстом.

Этот элемент означает подсказку или предложение.

Этот элемент означает общее примечание.

Этот элемент указывает на предупреждение или предостережение.

Использование примеров кода

Дополнительный материал (примеры кода, упражнения и т. д.) можно 
загрузить по адресу https://github.com/mongodb-the-definitive-guide-3e/mongodb-thedefinitive-guide-3e.
Если у вас есть вопрос технического характера или возникла проблема, 
связанная с примерами кода, отправьте письмо на адрес bookquestions@oreilly.
com.
Данная книга призвана помочь вам выполнить свою работу. В общем, вы 
можете использовать код из этой книги в своих программах и документации. Вам не нужно обращаться к нам за разрешением, если вы не воспроизводите значительную часть кода. Например, для написания программы, 
в которой используется несколько фрагментов кода из этой книги, оно не 
требуется. Продажа или распространение CD-ROM с примерами из книг 

Предисловие  19

O'Reilly требует разрешения. Чтобы ответить на вопрос, сославшись на эту 
книгу и приведя пример кода, разрешение не требуется. Включение значительного количества примеров кода из этой книги в документацию вашего продукта требует разрешения.
Атрибуция желательна, но не является обязательной. Обычно она включает в себя название книги, автора, издателя и ISBN. Например: «Книга 
рецептов R, 2-е изд., Дж. Д. Лонг и Пол Титор. Copyright 2019 Дж. Лонг и Пол 
Титор, 978-1-492-04068-2».
Если вы считаете, что использование примеров кода выходит за рамки добросовестного применения или только что описанного разрешения, 
свяжитесь с нами по адресу permissions@oreilly.com.

Обучение в режиме онлайн 

На протяжении почти 40 лет O'Reilly Media (https://www.oreilly.com) предоставляет технологии и бизнес-тренинги, знания и анализ, чтобы помочь компаниям добиваться успеха.
Наша уникальная сеть экспертов и новаторов делится своими знаниями 
и опытом через книги, статьи, конференции и нашу онлайн-платформу 
обучения. Платформа онлайн-обучения O'Reilly предоставляет доступ по 
требованию к курсам обучения в режиме реального времени, углубленным способам обучения, интерактивным средам кодирования и обширной коллекции текстов и видео от O'Reilly и свыше 200 других издательств. 
Для получения дополнительной информации, пожалуйста, посетите сайт 
http://oreilly.com. 

Предисловие от издательства

Отзывы и пожелания

Мы всегда рады отзывам наших читателей. Расскажите нам, что вы думаете об этой книге, – что понравилось или, может быть, не понравилось. 
Отзывы важны для нас, чтобы выпускать книги, которые будут для вас 
максимально полезны.
Вы можете написать отзыв прямо на нашем сайте www.dmkpress.com, зайдя 
на страницу книги, и оставить комментарий в разделе «Отзывы и рецензии». Также можно послать письмо главному редактору по адресу dmkpress@
gmail.com, при этом напишите название книги в теме письма.
Если есть тема, в которой вы квалифицированы, и вы заинтересованы 
в написании новой книги, заполните форму на нашем сайте по адресу 
http://dmkpress.com/authors/publish_book/ или напишите в издательство по ад ресу 
dmkpress@gmail.com.

Список опечаток

Хотя мы приняли все возможные меры для того, чтобы удостовериться 
в качестве наших текстов, ошибки все равно случаются. Если вы найдете 
ошибку в одной из наших книг – возможно, ошибку в тексте или в коде, – 
мы будем очень благодарны, если вы сообщите нам о ней. Сделав это, вы 
избавите других читателей от расстройств и поможете нам улучшить последующие версии этой книги.
Если вы найдете какие-либо ошибки в коде, пожалуйста, сообщите о 
них главному редактору по адресу dmkpress@gmail.com, и мы исправим это в 
следую щих тиражах.

Нарушение авторских прав

Пиратство в интернете по-прежнему остается насущной проблемой. Издательства «ДМК Пресс» и O'Reilly очень серьезно относятся к вопросам 
защиты авторских прав и лицензирования. Если вы столкнетесь в интернете с незаконно выполненной копией любой нашей книги, пожалуйста, 
сообщите нам адрес копии или веб-сайта, чтобы мы могли применить 
санкции.
Пожалуйста, свяжитесь с нами по адресу электронной почты dmkpress@
gmail.com со ссылкой на подозрительные материалы.
Мы высоко ценим любую помощь по защите наших авторов, помогающую предоставлять вам качественные материалы.

Доступ онлайн
1 499 ₽
В корзину