MongoDB — это NoSQL, т.е. нереляционная база данных. По сути, это хранилище документов. Он хранит данные в виде документов, эти документы выглядят как объекты JSON, которые представляют собой «ассоциативный массив». Мы говорим «выглядеть как», потому что документы MongoDB гораздо более гибкие, чем объекты javascript.
Давайте посмотрим, с чем можно сравнить документ MongoDB:
- Документ → Объект JSON
- Документ → Массив PHP
- Документ → Словарь Python
- Документ → Руби Хэш
Документы хороши, но много усилий уходит на определение структуры документов, структура определяется в процессе, называемом «Моделирование данных».
Моделирование данных
MongoDB является предпочтительным выбором хранилища данных, когда речь идет о больших данных или данных веб-масштаба. Также, где данные могут быть непоследовательными и грязными.
Гибкость, обеспечиваемая базой данных и подходом без схемы, лучше всего подходит для моделирования данных, собранных из различных источников.
Давайте возьмем в качестве примера статью, просканированную из Интернета, и создадим из нее документ, который в конечном итоге можно будет сохранить в MongoDB. Определение того, как должно выглядеть документирование, называется моделированием данных, в которое мы углубимся, но сначала пройдемся по ссылке ниже:
URL: http://www.theonion.com/article/sitting-inside-cardboard-box-safest-6-year-old-wil-53144
Если вы перейдете по указанному выше URL-адресу, вы увидите эту веб-страницу, внимательно изучив ее, вы увидите, что на ней есть несколько важных элементов, таких как заголовок, описание, изображение, дата и т. д.
Часть моделирования здесь будет состоять в том, чтобы идентифицировать эти элементы и назначать различные типы объектов, такие как целое число, строка, дата, объект JSON, массив или комплекс и т. д.
Примечание: справочные данные взяты из ранее опубликованной здесь статьи: Введение в Scrapy.
Файл данных находится здесь: items.json.
Мы выбрали документ из файла items.json, и ниже вы можете увидеть документ в формате JSON справа.
Веб-страница преобразуется в документ, как показано выше. Веб-страница может быть связана с любым количеством в реальном мире, а модель данных может быть документом JSON, в который она переведена.
Поскольку MongoDB предоставляет гибкую схему, документ может быть сложным/вложенным или простым. Далее мы увидим несколько допустимых типов документов.
Типы действительных документов:
{ "name":"Abc", "address":{ "house":10, "street":"Robert Street", "city":"Arabor", "country":"Westeros" }, "phone":[ 5103112112, 5103112112, 5103112112 ] }
Выше приведен пример объекта, как в документе, где адрес поля является самим документом (JSON), который содержится в родительском JSON. Поле phone представляет собой массив, содержащийся внутри документа. Это несколько комбинаций, в которых могут храниться действительные документы. Можно создавать несколько комбинаций по своему желанию, если рассматривается действительность схемы JSON.
Зачем использовать MongoDB?
Определенно, у использования MongoDB есть много преимуществ, некоторые из которых мы уже упоминали выше, но есть и другие положительные моменты, о которых нам нужно упомянуть.
Преимущества MongoDB:
- Гибкая схема
- Дружественный к программисту
- Простое и гибкое развертывание
- Создан для больших данных
- Горизонтально масштабируемый
- Встроенная поддержка Map/Reduce
- Платформа агрегации
Поэтому в следующий раз, когда вы начнете проект, рассмотрите возможность использования базы данных NoSQL, поскольку это может упростить и сократить время разработки.