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, поскольку это может упростить и сократить время разработки.