Что такое MongoDB? Archiтектура, особенности и пример

⚡ Умное резюме

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

  • 📄 Модель документа: Данные хранятся в виде документов типа «ключ-значение» внутри коллекций, а не таблиц.
  • 🧩 Гибкая схема: Поля создаются на лету, без заранее определенной структуры.
  • ???? ️ Основные компоненты: _id, collection, document, field, cursor, database и JSON.
  • ⚙️ Зачем это использовать: Запросы по требованию, индексирование, репликация и сегментирование для масштабируемости.
  • 🔄 В сравнении с СУБД: Коллекции заменяют таблицы, а встроенные документы заменяют объединения таблиц.

Что такое MongoDB

Что такое MongoDB?

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

MongoDB Особенности

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

MongoDB Пример

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

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

MongoDB Пример

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

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

  1. _id – Это поле обязательно для каждого MongoDB документ. Поле _id представляет уникальное значение в MongoDB документ. Поле _id аналогично первичному ключу документа. Если вы создаете новый документ без поля _id, MongoDB Поле будет создано автоматически. Например, если мы посмотрим на приведенную выше таблицу клиентов, MongoDB К каждому документу в коллекции будет добавлен уникальный 24-значный идентификатор.
_Идентификатор Пользовательский ИД Имя Клиента Номер заказа
563479cc8a8a4246bd27d784 11 Guru99 111
563479cc7a8a4246bd47d784 22 Тревор Смит 222
563479cc9a8a4246bd57d784 33 Николь 333
  1. – Это группаping of MongoDB документы. Коллекция — это эквивалент таблицы, созданной в любой другой СУБД, например, Oracle или MS SQL. Коллекция существует в рамках одной базы данных. Как видно из введения, коллекции не навязывают никакой конкретной структуры.
  2. Курсор – Это указатель на набор результатов запроса. Клиенты могут перебирать курсор для получения результатов.
  3. База данных – Это контейнер для коллекций, как в реляционных СУБД, где это контейнер для таблиц. Каждая база данных получает свой собственный набор файлов в файловой системе. MongoDB сервер может хранить несколько баз данных.
  4. Документ – Рекорд в MongoDB Коллекция, по сути, называется документом. Документ, в свою очередь, будет состоять из названий полей и их значений.
  5. Поиск – Пара «имя-значение» в документе. Документ содержит ноль или более полей. Поля аналогичны столбцам в реляционных базах данных. На следующей диаграмме показан пример полей с парами «ключ-значение». Так, в приведенном ниже примере CustomerID и 11 являются одной из пар «ключ-значение», определенных в документе.

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

  1. JSON – Это известно как JavaСценарий Обозначение объекта. Это удобочитаемый простой текстовый формат для выражения структурированных данных. JSON в настоящее время поддерживается во многих языках программирования.

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

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

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

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

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

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

При моделировании данных в MongoDBПримите во внимание следующие моменты:

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

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

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

RDBMS MongoDB <b>Сравнение</b>
Таблица In RDBMSВ таблице содержатся столбцы и строки, используемые для хранения данных, тогда как в MongoDB Подобная структура называется коллекцией. Коллекция содержит документы, которые, в свою очередь, содержат поля, представляющие собой пары ключ-значение.
Строка Документ В РСУБД строка представляет собой один неявно структурированный элемент данных в таблице. В MongoDB, данные хранятся в документах.
Column Поиск В СУБД столбец обозначает набор значений данных. Эти в MongoDB Они известны как поля.
Играя Встроенные документы В реляционных СУБД данные иногда распределены по нескольким таблицам, и для отображения полного представления всех данных иногда используется объединение таблиц. MongoDBДанные обычно хранятся в одной коллекции, но разделены с помощью встроенных документов. Поэтому в данном случае отсутствует понятие объединений (joins). MongoDB.

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

  1. Реляционные базы данных известны тем, что обеспечивают целостность данных. Это не является явным требованием в MongoDB.
  2. СУБД требует, чтобы данные были нормированный Во-первых, это позволяет предотвратить появление «сиротских» записей и дубликатов. Нормализация данных затем требует большего количества таблиц, что, в свою очередь, приведет к увеличению числа объединений таблиц, а значит, и к увеличению количества ключей и индексов. По мере роста баз данных производительность может стать проблемой. Опять же, это не является явным требованием в MongoDB. MongoDB является гибким и не требует предварительной нормализации данных.

Часто задаваемые вопросы (FAQ)

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

Да. MongoDB Atlas Vector Search позволяет хранить и запрашивать векторные представления вместе с документами. Это поддерживает семантический поиск, рекомендации и генерацию результатов поиска для приложений искусственного интеллекта без отдельной базы данных векторов.

MongoDB Community Edition — бесплатная программа с открытым исходным кодом. MongoDB Также предлагается Atlas, управляемый облачный сервис с бесплатным уровнем, и Enterprise Edition с расширенными функциями безопасности и поддержки за дополнительную плату.

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

Подведем итог этой публикации следующим образом: