[tutsplus] MongoDB — NoSQL-СУБД, ориентированная на хранение и работу с JSON 2013
Год выпуска: 2013
Производитель: tutsplus
Автор: Andrew Burgess
Продолжительность: 02:53:50
Описание: MongoDB – это открытая база данных типа NoSQL, разработанная с учетом требований в крайне высокой производительности и бесконечной масштабируемости. Платформа MongoDB поддерживает документоориентированную модель данных, динамическую схему, полноценное индексирование, сверхбыстрое обновление с замещением, функциональные динамические запросы, встроенные функции сегментирования и автоматического восстановления после сбоя, а также GridFS и MapReduce.
Что в первую очередь следует знать о MongoDB?
Есть множество других тонких моментов. Например, при обновлении документа в коллекции, ограниченной по размеру, документ не может увеличиваться. Еще MongoDB не позволяет выполнять неоптимизированную сортировку документов (когда производится выборка большого объема данных, а у вас нет подходящего индекса). А еще для работы с файлами MongoDB использует mmap. В связи с этим MongoDB обычно использует больше места на диске, чем другие СУБД. Также, если вы хотите работать с объемами данных, превышающими 4 Гб, вам понадобятся 64-х битные сервера.
Вы спросите, как вообще можно для чего-то использовать такую СУБД, если она не поддерживает даже транзакции? В действительности, в этом нет ничего страшного. Наверняка половина веб-сайтов до сих пор хранят свои данные в MyISAM. И ничего, живем ведь как-то. Скажем, если вы решили написать на MongoDB движок форума, то при удалении темы должны сначала удалить все ответы в этой теме и только потом саму тему. Кроме того, никто же не запрещает вам использовать MongoDB, например, совместно с PostgreSQL.
Скрытое содержимое.
1.1 Введение
1.2 Установка MongoDB
1.3 MongoDB Инструменты
1.4 Условия баз данных NoSQL
2.1 Создание баз данных, коллекции и документы
2.2 Объекты
2.3 Связанные Документы
3.1 Нахождение документов и Выбор Поля
3.2 Операторы, часть 1
3.3 Операторы, часть 2
3.4 Группировка и регулярных выражений
3.5 Курсор методов, сортировки и разбиения по страницам
3.6 Обновление Документов, часть 1
3.7 Обновление Документов, часть 2
3.8 Удаление документов, коллекций и баз данных
3.9 Индексы
4.1 PHP драйвер
4.2 Node.js драйвер
4.3 Сравнение NoSQL и SQL
5.1 Заключение
Содержание на английском
1.1 Introduction
1.2 Installing MongoDB
1.3 MongoDB Tools
1.4 NoSQL Database Terms
2.1 Creating Databases, Collections, and Documents
2.2 ObjectIDs
2.3 Relating Documents
3.1 Finding Documents and Choosing Fields
3.2 Operators, part 1
3.3 Operators, part 2
3.4 Grouping and Regular Expression
3.5 Cursor Methods, Sorting, and Paging
3.6 Updating Documents, part 1
3.7 Updating Documents, part 2
3.8 Deleting Documents, Collections, and Database
3.9 Indexes
4.1 The PHP Driver
4.2 The Node.js Driver
4.3 NoSQL vs. SQL
5.1 Conclusion
Содержание в паблике
01-intro.mov
02-install.mov
03-tools.mov
04-terms.mov
05-create.mov
06-objectids.mov
07-relations.mov
08-queries-1.mov
09-queries-2.mov
10-queries-3.mov
11-queries-4.mov
12-queries-5.mov
13-updates-1.mov
14-updates-2.mov
15-deleting.mov
16-indexes.mov
17-php.mov
18-node.mov
19-nosql-vs-sql.mov
20-end.mov
// Сам курс не покупается, а берется в паблике
// Как наберется народ, найдется и переводчик и организатор
// Заинтересовались – подписывайтесь!
Собираем на перевод
[tutsplus] MongoDB — NoSQL-СУБД, ориентированная на хранение и работу с JSON 2013
Оригинальное название: Learning MongoDB[tutsplus] MongoDB — NoSQL-СУБД, ориентированная на хранение и работу с JSON 2013
Год выпуска: 2013
Производитель: tutsplus
Автор: Andrew Burgess
Продолжительность: 02:53:50
Описание: MongoDB – это открытая база данных типа NoSQL, разработанная с учетом требований в крайне высокой производительности и бесконечной масштабируемости. Платформа MongoDB поддерживает документоориентированную модель данных, динамическую схему, полноценное индексирование, сверхбыстрое обновление с замещением, функциональные динамические запросы, встроенные функции сегментирования и автоматического восстановления после сбоя, а также GridFS и MapReduce.
Что в первую очередь следует знать о MongoDB?
- MongoDB — это документо-ориентированная СУБД. Данные в MongoDB хранятся в документах, которые объединяются в коллекции. Каждый документ представляет собой JSON-подобную структуру. Проведя аналогию с реляционными СУБД, можно сказать, что коллекциям соответствуют таблицы, а документам — строки в таблицах. Максимальный размер документа в MongoDB 2.x составляет 16 Мб(в более ранних версиях — лишь 4 Мб);
- В отличие от РСУБД MongoDB не требует какого-либо описания схемы базы данных — она может постепенно меняться по мере развития приложения, что есть удобно;
- Поддерживаются индексы, в том числе по массивам и вложенным документам, а также геопространственные индексы. Поддерживаются уникальные и составные индексы;
- Также MongoDB есть атомарные операции, compare-and-swap, курсоры, запись без подтверждения и даже MapReduce (но я бы не спешил переходить с Hadoop на MongoDB);
- Размер коллекции в MongoDB может быть ограничен числом документов или мегабайтами. Если коллекция слишком разрастется, старые документы будут удалены. Эта возможность может пригодится, если вы собираетесь хранить в MongoDB какие-то временные данные;
- Интерфейс MongoDB сильно напоминают работу с DBIx::Class. Типа получаем ORM «из коробки». В запросах могут использоваться функции на языке JavaScript;
- В MongoDB поддерживается журналирование, а также асинхронная репликация двух видов — master-slave репликация и наборы реплик. Разработчики MongoDB рекомендуют использовать последние. Набор реплик представляет собой тот же master-slave, но в случае падения мастера среди реплик автоматически выбирается новый мастер. После возобновления своей работы бывший мастер становится репликой;
- Пожалуй, самая значительная особенность MongoDB заключается в том, что документы могут быть автоматически сегментированы по нескольким наборам реплик. Сегментирование производится по диапазону; чтобы отнести документ к конкретному диапазону, используется сегментный ключ (shard key). Данные распределяются между наборами реплик так, чтобы каждый набор содержал примерно одинаковый объем данных. Если кластер перестает справляться с нагрузкой, можно просто добавить в него еще один набор реплик — перераспределение данных произойдет автоматически;
- В документах MongoDB можно хранить бинарные данные — картинки, mp3 и так далее. Однако для данных размером более 1 Мб рекомендуется использовать GridFS. GridFS — это соглашение о хранении файлов произвольного размера в MongoDB, поддерживаемое всеми официальными драйверами. У меня уже чешутся руки написать свой RapidShare, а у вас?
- MongoDB используют GitHub, SourceForge, Foursquare, Bit.ly, About.me, MTV, CNN, New York Times, Forbes, Disney, EA и многие другие;
Есть множество других тонких моментов. Например, при обновлении документа в коллекции, ограниченной по размеру, документ не может увеличиваться. Еще MongoDB не позволяет выполнять неоптимизированную сортировку документов (когда производится выборка большого объема данных, а у вас нет подходящего индекса). А еще для работы с файлами MongoDB использует mmap. В связи с этим MongoDB обычно использует больше места на диске, чем другие СУБД. Также, если вы хотите работать с объемами данных, превышающими 4 Гб, вам понадобятся 64-х битные сервера.
Вы спросите, как вообще можно для чего-то использовать такую СУБД, если она не поддерживает даже транзакции? В действительности, в этом нет ничего страшного. Наверняка половина веб-сайтов до сих пор хранят свои данные в MyISAM. И ничего, живем ведь как-то. Скажем, если вы решили написать на MongoDB движок форума, то при удалении темы должны сначала удалить все ответы в этой теме и только потом саму тему. Кроме того, никто же не запрещает вам использовать MongoDB, например, совместно с PostgreSQL.
Скрытое содержимое.
Содержание на русскомИсточник:http://eax.me/mongodb
1.1 Введение
1.2 Установка MongoDB
1.3 MongoDB Инструменты
1.4 Условия баз данных NoSQL
2.1 Создание баз данных, коллекции и документы
2.2 Объекты
2.3 Связанные Документы
3.1 Нахождение документов и Выбор Поля
3.2 Операторы, часть 1
3.3 Операторы, часть 2
3.4 Группировка и регулярных выражений
3.5 Курсор методов, сортировки и разбиения по страницам
3.6 Обновление Документов, часть 1
3.7 Обновление Документов, часть 2
3.8 Удаление документов, коллекций и баз данных
3.9 Индексы
4.1 PHP драйвер
4.2 Node.js драйвер
4.3 Сравнение NoSQL и SQL
5.1 Заключение
Содержание на английском
1.1 Introduction
1.2 Installing MongoDB
1.3 MongoDB Tools
1.4 NoSQL Database Terms
2.1 Creating Databases, Collections, and Documents
2.2 ObjectIDs
2.3 Relating Documents
3.1 Finding Documents and Choosing Fields
3.2 Operators, part 1
3.3 Operators, part 2
3.4 Grouping and Regular Expression
3.5 Cursor Methods, Sorting, and Paging
3.6 Updating Documents, part 1
3.7 Updating Documents, part 2
3.8 Deleting Documents, Collections, and Database
3.9 Indexes
4.1 The PHP Driver
4.2 The Node.js Driver
4.3 NoSQL vs. SQL
5.1 Conclusion
Содержание в паблике
01-intro.mov
02-install.mov
03-tools.mov
04-terms.mov
05-create.mov
06-objectids.mov
07-relations.mov
08-queries-1.mov
09-queries-2.mov
10-queries-3.mov
11-queries-4.mov
12-queries-5.mov
13-updates-1.mov
14-updates-2.mov
15-deleting.mov
16-indexes.mov
17-php.mov
18-node.mov
19-nosql-vs-sql.mov
20-end.mov
// Сам курс не покупается, а берется в паблике
// Как наберется народ, найдется и переводчик и организатор
// Заинтересовались – подписывайтесь!