MongoDB: полное руководство
Мощная и масштабируемая система управления базами данных
Покупка
Тематика:
Системы управления базами данных (СУБД)
Издательство:
ДМК Пресс
Перевод:
Беликов Дмитрий Анатольевич
Год издания: 2020
Кол-во страниц: 540
Дополнительно
Вид издания:
Практическое пособие
Уровень образования:
ВО - Магистратура
ISBN: 978-5-97060-792-3
Артикул: 748341.01.99
Доступ онлайн
В корзину
Эта книга представляет собои исчерпывающее руководство по раооте с MongoDB 4.2 - мощной документоориентированной системой управления базами данных. Авторы, внесшие личный вклад в создание и развитие MongoDB, начинают описание системы с самых азов (история создания, базовая терминология) и постепенно переходят к более сложным темам (выполнение запросов, индексация, агрегирование, транзакции, наборы реплик, управление операциями, шардинг и администрирование данных, долговечность, мониторинг и безопасность).
Читатель получит конкретные советы по написанию приложения, которое хорошо работает с MongoDB, выяснит, какие системные настройки следует учитывать при ее развертывании и как устанавливать MongoDB в Windows, OS X и Linux.
Издание предназначено для разработчиков объемных баз данных, масштабирование которых является одной из приоритетных задач.
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Магистратура
- 09.04.01: Информатика и вычислительная техника
- 09.04.02: Информационные системы и технологии
- 09.04.03: Прикладная информатика
- 09.04.04: Программная инженерия
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов.
Для полноценной работы с документом, пожалуйста, перейдите в
ридер.
Шеннон Брэдшоу, Йон Брэзил, Кристина Ходоров 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 со ссылкой на подозрительные материалы. Мы высоко ценим любую помощь по защите наших авторов, помогающую предоставлять вам качественные материалы.
Доступ онлайн
В корзину