Что такое mongo: что это, для чего используется, особенности

что это, для чего используется, особенности

#Managed IT
#Software

MongoDB — система управления базами данных, которая работает с документоориентированной моделью данных. В отличие от реляционных СУБД, MongoDB не требуются таблицы, схемы или отдельный язык запросов. Информация хранится в виде документов либо коллекций.

Разработчики позиционируют продукт как промежуточное звено между классическими СУБД и NoSQL. MongoDB не использует схемы, как это делают реляционные базы данных, что повышает производительность всей системы.

У MongoDB есть ряд свойств, которые выделяют ее на фоне других продуктов:

  1. Кроссплатформенность. СУБД разработана на языке программирования С++, поэтому с легкостью интегрируется под любую операционную систему (Windows, Linux, MacOS и др.).
  2. Формат данных. MongoDB использует собственный формат хранения информации — Binary JavaScript Object Notation (BSON), который построен на основе языка JavaScript.
  3. Документ. Если реляционные БД используют строки, то MongoDB — документы, которые хранят значения и ключи.
  4. Вместо таблиц MongoDB использует коллекции. Они содержат разные типы наборов данных
  5. Репликация. Система хранения информации в СУБД представлена узлами. Существует один главный и множество вторичных. Данные реплицируются между точками. Если один первичный узел выходит из строя, то вторичный становится главным.
  6. Индексация. Технология применяется к любому полю в документе на усмотрение пользователя. Проиндексированная информация обрабатывается быстрее.
  7. Для сохранения данных большого размера MongoDB использует собственную технологию GridFS, состоящую из двух коллекций. В первой (files) содержатся имена файлов и метаданные по ним. Вторая (chunks) сохраняет сегменты информации, размер которых не превышает 256 Кб.
  8. СУБД осуществляет поиск по специальным запросам. Например, пользователь может создать диапазонный запрос и мгновенно получить ответ.
  9. Балансировщик нагрузки используется в СУБД не только для распределения нагрузки между разными базами данных, но и для горизонтального масштабирования. Сегменты БД распределяются по разным узлам, что повышает производительность. При этом базы данных, расположенные на разных узлах, синхронизированы между собой и обеспечивают целостность информации для клиента.
  10. MongoDB может поставляться для конечного клиента как облачное решение.

СУБД используют для хранения событий в системе (логирование), записи информации с датчиков мониторинга на предприятии, а также в сфере электронной коммерции и мобильных приложений. Часто MongoDB применяют как хранилище в сфере машинного обучения и искусственного интеллекта.

MongoDB относится к классу NoSQL СУБД и работает с документами, а не с записями. Это кроссплатформенный продукт, который легко внедряется в любую операционную систему. Ряд уникальных особенностей позволяет использовать СУБД под определённые задачи, в которых она обеспечивает максимальную производительность и надежность.

Оцените данную статью

MongoDB | Введение

Последнее обновление: 27.07.2022

MongoDB представляет наиболее популярную на данный момент документо-ориентированную систему управления базами данных. По разным оценкам входит в десяток самых используемых
баз данных в мире.

На момент написания данного материала последней версией платформы была версия
6.0, которая увидела свет в июле 2022 года и которая будет использоваться далее в данном руководстве.
Использование конкретной версии может несколько отличаться от применения иных версий платформы MongoDB. Но в целом отличия в построении запросов в mondogb между версиями минимальны,
имеет место довольно большая совместимость предудщеих версий с последующими

Документы вместо строк

Если реляционные базы данных хранят строки, то MongoDB хранит документы. В отличие от строк документы могут хранить сложную по структуре
информацию. Документ можно представить как хранилище ключей и значений.

Ключ представляет простую метку, с которым ассоциировано определенный кусок данных.

Однако при всех различиях есть одна особенность, которая сближает MongoDB и реляционные базы данных. В реляционных СУБД встречается такое понятие как первичный ключ. Это понятие описывает некий столбец, который имеет
уникальные значения. В MongoDB для каждого документа имеется уникальный идентификатор, который называется _id. И если явным образом не указать
его значение, то MongoDB автоматически сгенерирует для него значение.

Каждому ключу сопоставляется определенное значение. Но здесь также надо учитывать одну особенность: если в реляционных базах есть четко очерченная структура, где есть поля,
и если какое-то поле не имеет значение, ему (в зависимости от настроек конкретной бд) можно присвоить значение NULL. В MongoDB
все иначе. Если какому-то ключу не сопоставлено значение, то этот ключ просто опускается в документе и не употребляется.

Коллекции

Если в традиционном мире SQL есть таблицы, то в мире MongoDB есть коллекции. И если в реляционных БД таблицы хранят однотипные жестко структурированные
объекты, то в коллекции могут содержать самые разные объекты, имеющие различную структуру и различный набор свойств.

Репликация

Вся система MongoDB может представлять не только одну базу данных, которая располагается на одном физическом сервере. Функциональность MongoDB
позволяет расположить несколько баз данных на нескольких физических серверах, и эти базы данных смогут легко обмениваться данными и сохранять целостность.

Система хранения данных в MongoDB представляет набор реплик. В этом наборе есть основной узел, а также может быть набор вторичных узлов.
Все вторичные узлы сохраняют целостность и автоматически обновляются вместе с обновлением главного узла. И если основной узел по каким-то
причинам выходит из строя, то один из вторичных узлов становится главным.

Формат данных в MongoDB

Одним из популярных стандартов обмена данными и их хранения является JSON (JavaScript Object Notation). JSON эффективно описывает сложные по
структуре данные. Способ хранения данных в MongoDB в этом плане похож на JSON, хотя формально JSON не используется. Для хранения в MongoDB
применяется формат, который называется BSON (БиСон) или сокращение от binary JSON.

BSON позволяет работать с данными быстрее: быстрее выполняется поиск и обработка. Хотя надо отметить, что BSON в отличие от хранения данных
в формате JSON имеет небольшой недостаток: в целом данные в JSON-формате занимают меньше места, чем в формате BSON, с другой стороны, данный недостаток
с лихвой окупается скоростью.

Кроссплатформенность

MongoDB написана на C++, поэтому ее легко портировать на самые разные платформы. MongoDB может быть развернута на платформах Windows, Linux, MacOS, Solaris.
Можно также загрузить исходный код и самому скомпилировать MongoDB, но рекомендуется использовать библиотеки с офсайта.

Простота в использовании

Отсутствие жесткой схемы базы данных и в связи с этим потребности при малейшем изменении концепции хранения данных пересоздавать эту схему
значительно облегчают работу с базами данных MongoDB и дальнейшим их масштабированием. Кроме того, экономится время разработчиков. Им больше не надо
думать о пересоздании базы данных и тратить время на построение сложных запросов.

Но, даже учитывая все недостатки традиционных баз данных и достоинства MongoDB, важно понимать, что задачи бывают разные и методы их решения
бывают разные. В какой-то ситуации MongoDB действительно улучшит производительность вашего приложения, например, если надо хранить сложные по
структуре данные. В другой же ситуации лучше будет использовать традиционные реляционные базы данных. Кроме того, можно использовать смешенный подход:
хранить один тип данных в MongoDB, а другой тип данных — в традиционных БД.

GridFS

Одной из проблем при работе с любыми системами баз данных является сохранение данных большого размера. Можно сохранять данные в
файлах, используя различные языки программирования. Некоторые СУБД предлагают специальные типы данных для хранения бинарных данных в БД
(например, BLOB в MySQL).

В отличие от реляционных СУБД MongoDB позволяет сохранять различные документы с различным набором данных, однако при этом
размер документа ограничивается 16 мб. Но MongoDB предлагает решение — специальную технологию GridFS, которая позволяет хранить данные по размеру больше,
чем 16 мб.

Система GridFS состоит из двух коллекций. В первой коллекции, которая называется files, хранятся имена файлов, а также их метаданные, например, размер.
А в другой коллекции, которая называется chunks, в виде небольших сегментов хранятся данные файлов, обычно сегментами по 256 кб.

Для тестирования GridFS можно использовать специальную утилиту mongofiles, которая идет в пакете mongodb.

НазадСодержаниеВперед

Что такое MongoDB? | MongoDB

Доступно, как вы хотите,

Песочница
  • БЕСПЛАТНО, Forever
  • Идеально для обучения, разработки и прототипирования
Shared
  • до 5 ГБ хранилища
  • Shared Ram
DEMALD
  • 9977998
  • . производительность
  • Повышенная безопасность
  • Неограниченное масштабирование
  • Сервер

    MongoDB предлагает как корпоративную, так и общественную версию своей мощной распределенной базы данных документов

    Community
    • Особенности Rich
    • Developer Ready
    Enterprise
    • Advanced Features
    • . Сравнение

    Cloud

    Cloud

    49000
  • бесплатно, Forever

    49000
  • Free, Forever

    4
  • , Foreen

    49000
  • , Foree

    4
  • . и прототипирование

  • Общая
    • До 5 Гб для хранения
    • Общая оперативная память
    Выделенная
    • Стабильная производительность
    • Advanced Security
    • Unlimited Scaling

    Server

    Server

    MongoDB предлагает как предприятие, так и общество версии своей мощной распределенной базы документов

      9

      • Feature Brick 9008
          • .
            • Расширенные функции
            • Уровень производительности

            Упрощает разработку

            Модель документов MongoDB проста для изучения и использования разработчиками, при этом предоставляя все возможности, необходимые для удовлетворения самых сложных требований в любом масштабе. Мы предоставляем драйверы для более чем 10 языков, а сообщество создало еще десятки.

            Connect

            Здесь мы подключаемся к локально размещенной базе данных MongoDB под названием test с коллекцией с именем restaurant.

            View Documentation

            • MongoDB хранит данные в гибких JSON-подобных документах , что означает, что поля могут варьироваться от документа к документу, а структура данных может меняться с течением времени

            • Модель документа сопоставляется с объектами в вашем приложении с кодом , что упрощает работу с данными

            • Специальные запросы, индексирование и агрегация в реальном времени обеспечивают мощные способы доступа к данным и их анализа

            • MongoDB — это распределенная база данных по своей сути , поэтому высокая доступность, горизонтальное масштабирование и географическое распределение встроены и просты в использовании

            • MongoDB бесплатна для использования . Версии, выпущенные до 16 октября 2018 г., публикуются в рамках AGPL. Все версии, выпущенные после 16 октября 2018 г., включая исправления для предыдущих версий, публикуются в соответствии с Общедоступной лицензией на стороне сервера (SSPL) v1.

            Узнайте больше о архитектуре MongoDB →

            85 000 000+

            Скачания и кластеры ATLAS

            005

            Университет MongoDB

            9000 9000

            GIT запустить MongoDB?

            • Высокая доступность благодаря встроенной репликации и аварийному переключению

            • Горизонтальная масштабируемость с собственным сегментированием

            • Сквозная безопасность

            • Встроенная проверка документов и исследование схемы с помощью Compass

            • Средства управления для автоматизации, мониторинга и резервного копирования

            • Полностью встроенная эластичная база данных как сервис практики

            Узнайте больше о наших продуктах →

            Нам доверяют тысячи команд

            Готовы начать?

            Запустите новый кластер или перейдите на MongoDB Atlas без простоев.

            Что такое MongoDB? Введение, архитектура, функции и пример

            Автор: Дэвид Тейлор

            Часы

            Обновлено

            Что такое MongoDB?

            MongoDB — документно-ориентированная база данных NoSQL, используемая для хранения больших объемов данных. Вместо использования таблиц и строк, как в традиционных реляционных базах данных, MongoDB использует коллекции и документы. Документы состоят из пар ключ-значение, которые являются основной единицей данных в MongoDB. Коллекции содержат наборы документов и функций, которые эквивалентны таблицам реляционных баз данных. MongoDB — это база данных, появившаяся примерно в середине 2000-х годов.

            В этом уроке вы узнаете-

            • Возможности MongoDB
            • Пример MongoDB
            • Ключевые компоненты архитектуры MongoDB
            • Зачем использовать MongoDB
            • Моделирование данных в MongoDB
            • Разница между MongoDB и РСУБД

            Функции MongoDB

            1. Каждая база данных содержит коллекции, которые, в свою очередь, содержат документы. Каждый документ может быть разным с разным количеством полей. Размер и содержание каждого документа могут отличаться друг от друга.
            2. Структура документа больше соответствует тому, как разработчики создают свои классы и объекты в соответствующих языках программирования. Разработчики часто говорят, что их классы — это не строки и столбцы, а четкая структура с парами ключ-значение.
            3. Строки (или документы, как они называются в MongoDB) не должны иметь заранее определенную схему. Вместо этого поля можно создавать на лету.
            4. Модель данных, доступная в MongoDB, упрощает представление иерархических отношений, хранение массивов и других более сложных структур.
            5. Масштабируемость. Среды MongoDB очень масштабируемы. Компании по всему миру создали кластеры, в некоторых из которых работает более 100 узлов с примерно миллионами документов в базе данных
            6. .

            Пример MongoDB

            В приведенном ниже примере показано, как можно смоделировать документ в MongoDB.

            1. Поле _id добавляется MongoDB для уникальной идентификации документа в коллекции.
            2. Что вы можете заметить, так это то, что данные заказа (OrderID, Product и Quantity), которые в СУБД обычно хранятся в отдельной таблице, в то время как в MongoDB они фактически хранятся как встроенный документ в самой коллекции. Это одно из ключевых отличий в моделировании данных в MongoDB.

            Ключевые компоненты архитектуры MongoDB

            Ниже приведены некоторые общие термины, используемые в MongoDB

            1. _id — это поле, обязательное для заполнения в каждом документе MongoDB. Поле _id представляет собой уникальное значение в документе MongoDB. Поле _id похоже на первичный ключ документа. Если вы создадите новый документ без поля _id, MongoDB автоматически создаст это поле. Так, например, если мы увидим пример приведенной выше таблицы клиентов, Mongo DB добавит 24-значный уникальный идентификатор к каждому документу в коллекции.
            _Идентификатор идентификатор клиента ИмяКлиента ID заказа
            563479cc8a8a4246bd27d784 11 Гуру99 111
            563479cc7a8a4246bd47d784 22 Тревор Смит 222
            563479cc9a8a4246bd57d784 33 Николь 333
            1. Коллекция — это группа документов MongoDB. Коллекция является эквивалентом таблицы, созданной в любой другой RDMS, такой как Oracle или MS SQL. Коллекция существует в одной базе данных. Как видно из введения, коллекции не навязывают никакой структуры.
            2. Курсор — это указатель на набор результатов запроса. Клиенты могут перебирать курсор для получения результатов.
            3. База данных — это контейнер для коллекций, как в RDMS, где он является контейнером для таблиц. Каждая база данных получает свой собственный набор файлов в файловой системе. Сервер MongoDB может хранить несколько баз данных.
            4. Документ . Запись в коллекции MongoDB в основном называется документом. Документ, в свою очередь, будет состоять из имени поля и значений.
            5. Поле — Пара имя-значение в документе. Документ имеет ноль или более полей. Поля аналогичны столбцам в реляционных базах данных. На следующей диаграмме показан пример полей с парами значений ключа. Таким образом, в приведенном ниже примере CustomerID и 11 являются одной из пар ключ-значение, определенных в документе.
            1. JSON — это известно как нотация объектов JavaScript. Это удобочитаемый текстовый формат для представления структурированных данных. В настоящее время JSON поддерживается многими языками программирования.

            Небольшое замечание о ключевой разнице между полем _id и обычным полем коллекции. Поле _id используется для уникальной идентификации документов в коллекции и автоматически добавляется MongoDB при создании коллекции.

            Зачем использовать MongoDB?

            Ниже приведены несколько причин, по которым следует начать использовать MongoDB

            1. Ориентированность на документы. Поскольку MongoDB является базой данных типа NoSQL, вместо того, чтобы иметь данные в формате реляционного типа, она хранит данные в документах. Это делает MongoDB очень гибкой и адаптируемой к реальной ситуации и требованиям делового мира.
            2. Специальные запросы — MongoDB поддерживает поиск по полям, запросам диапазона и поиску по регулярным выражениям. Запросы могут быть сделаны для возврата определенных полей в документах.
            3. Индексирование. Можно создавать индексы для повышения производительности поиска в MongoDB. Любое поле в документе MongoDB может быть проиндексировано.
            4. Репликация — MongoDB может обеспечить высокую доступность с помощью наборов реплик. Набор реплик состоит из двух или более экземпляров mongo DB. Каждый член набора реплик может выступать в роли первичной или вторичной реплики в любое время. Первичная реплика — это основной сервер, который взаимодействует с клиентом и выполняет все операции чтения/записи. Вторичные реплики поддерживают копию данных первичной реплики с помощью встроенной репликации. При сбое первичной реплики набор реплик автоматически переключается на вторичный, а затем становится первичным сервером.
            5. Балансировка нагрузки — MongoDB использует концепцию сегментирования для горизонтального масштабирования путем разделения данных между несколькими экземплярами MongoDB. MongoDB может работать на нескольких серверах, балансируя нагрузку и/или дублируя данные, чтобы поддерживать работоспособность системы в случае сбоя оборудования.

            Моделирование данных в MongoDB

            Как мы видели из раздела «Введение», данные в MongoDB имеют гибкую схему. В отличие от баз данных SQL, где вы должны объявить схему таблицы перед вставкой данных, коллекции MongoDB не навязывают структуру документа. Такая гибкость делает MongoDB такой мощной.

            При моделировании данных в Mongo помните о следующем.

            1. Каковы потребности приложения. Посмотрите на бизнес-потребности приложения и посмотрите, какие данные и тип данных необходимы для приложения. Исходя из этого, убедитесь, что структура документа определена соответствующим образом.
            2. Что такое шаблоны извлечения данных. Если вы предвидите интенсивное использование запросов, рассмотрите возможность использования индексов в вашей модели данных для повышения эффективности запросов.
            3. Частые вставки, обновления и удаления в базе данных? Пересмотрите использование индексов или включите сегментирование, если это необходимо, в структуру моделирования данных, чтобы повысить эффективность всей среды MongoDB.

            Разница между MongoDB и РСУБД

            Ниже приведены некоторые из ключевых различий терминов между MongoDB и РСУБД

            РСУБД МонгоДБ Разница
            Таблица Коллекция В СУБД таблица содержит столбцы и строки, которые используются для хранения данных, тогда как в MongoDB эта же структура называется коллекцией. Коллекция содержит документы, которые, в свою очередь, содержат поля, которые, в свою очередь, представляют собой пары ключ-значение.
            Ряд Документ В СУБД строка представляет один неявно структурированный элемент данных в таблице. В MongoDB данные хранятся в документах.
            Столбец Поле В СУБД столбец обозначает набор значений данных. В MongoDB они известны как поля.
            Соединения Встроенные документы В СУБД данные иногда распределяются по разным таблицам, и для того, чтобы показать полное представление всех данных, иногда для получения данных между таблицами создается объединение. В MongoDB данные обычно хранятся в одной коллекции, но разделены с помощью встроенных документов. Таким образом, в MongoDB нет концепции соединений. 903:00

            Помимо различий в терминах, несколько других различий показаны ниже.

            1. Известно, что реляционные базы данных обеспечивают целостность данных.

              This entry was posted in Популярное