Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
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 (дата обращения: 22.11.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

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