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

Что такое MongoDB?
MongoDB — это документально-ориентированная база данных NoSQL, используемая для хранения больших объемов данных. Вместо использования таблиц и строк, как в традиционных реляционных базах данных, MongoDB использует коллекции и документы. Документы состоят из пар ключ-значение, которые являются основной единицей данных в MongoDBКоллекции содержат наборы документов и функций, что эквивалентно таблицам реляционных баз данных. MongoDB — это база данных, которая появилась примерно в середине 2000-х годов.
MongoDB Особенности
- Каждая база данных содержит коллекции, которые, в свою очередь, содержат документы. Каждый документ может быть разным, с различным количеством полей. Размер и содержание каждого документа могут отличаться друг от друга.
- Структура документа больше соответствует тому, как разработчики создают свои классы и объекты в соответствующих языках программирования. Разработчики часто говорят, что их классы — это не строки и столбцы, а четкая структура с парами ключ-значение.
- Строки (или документы, как они называются в MongoDBДля этих полей не требуется предварительное определение схемы. Вместо этого поля можно создавать на лету.
- Модель данных, доступная в MongoDB Это позволяет представлять иерархические связи, хранить массивы и упрощать хранение других более сложных структур.
- Масштабируемость - MongoDB Эти среды обладают высокой масштабируемостью. Компании по всему миру создали кластеры, некоторые из которых насчитывают более 100 узлов и хранят в базе данных миллионы документов.
MongoDB Пример
В приведенном ниже примере показано, как можно смоделировать документ в MongoDB.
- Поле _id добавлено MongoDB для уникальной идентификации документа в коллекции.
- Обратите внимание, что данные заказа (идентификатор заказа, товар и количество), которые в реляционных СУБД обычно хранятся в отдельной таблице, фактически хранятся как встроенный документ в самой коллекции. MongoDBЭто одно из ключевых отличий в способах моделирования данных в MongoDB.
Ключевые компоненты MongoDB Archiтекстура
Ниже приведены некоторые общие термины, используемые в MongoDB:
- _id – Это поле обязательно для каждого MongoDB документ. Поле _id представляет уникальное значение в MongoDB документ. Поле _id аналогично первичному ключу документа. Если вы создаете новый документ без поля _id, MongoDB Поле будет создано автоматически. Например, если мы посмотрим на приведенную выше таблицу клиентов, MongoDB К каждому документу в коллекции будет добавлен уникальный 24-значный идентификатор.
| _Идентификатор | Пользовательский ИД | Имя Клиента | Номер заказа |
|---|---|---|---|
| 563479cc8a8a4246bd27d784 | 11 | Guru99 | 111 |
| 563479cc7a8a4246bd47d784 | 22 | Тревор Смит | 222 |
| 563479cc9a8a4246bd57d784 | 33 | Николь | 333 |
- – Это группаping of MongoDB документы. Коллекция — это эквивалент таблицы, созданной в любой другой СУБД, например, Oracle или MS SQL. Коллекция существует в рамках одной базы данных. Как видно из введения, коллекции не навязывают никакой конкретной структуры.
- Курсор – Это указатель на набор результатов запроса. Клиенты могут перебирать курсор для получения результатов.
- База данных – Это контейнер для коллекций, как в реляционных СУБД, где это контейнер для таблиц. Каждая база данных получает свой собственный набор файлов в файловой системе. MongoDB сервер может хранить несколько баз данных.
- Документ – Рекорд в MongoDB Коллекция, по сути, называется документом. Документ, в свою очередь, будет состоять из названий полей и их значений.
- Поиск – Пара «имя-значение» в документе. Документ содержит ноль или более полей. Поля аналогичны столбцам в реляционных базах данных. На следующей диаграмме показан пример полей с парами «ключ-значение». Так, в приведенном ниже примере CustomerID и 11 являются одной из пар «ключ-значение», определенных в документе.
- JSON – Это известно как JavaСценарий Обозначение объекта. Это удобочитаемый простой текстовый формат для выражения структурированных данных. JSON в настоящее время поддерживается во многих языках программирования.
Просто небольшое замечание о ключевом различии между полем _id и обычным полем сбора данных. Поле _id используется для уникальной идентификации документов в коллекции и автоматически добавляется MongoDB при создании коллекции.
Зачем использовать MongoDB?
Ниже приведены несколько причин, по которым стоит начать использовать MongoDB:
- Документально-ориентированный - С MongoDB - это NoSQL типа базы данных, вместо того, чтобы хранить данные в формате реляционного типа, они хранят данные в документах. Это делает MongoDB Очень гибкий и легко адаптируемый к реальным ситуациям и требованиям делового мира.
- Специальные запросы – MongoDB поддерживает поиск по полю, запросы по диапазону и поиск по регулярному выражению. Запросы могут быть сделаны для возврата определенных полей в документах.
- Индексирование – Можно создавать индексы для повышения эффективности поиска внутри системы. MongoDB. Любое поле в MongoDB документ может быть проиндексирован.
- копирование – MongoDB Наборы-реплики могут обеспечить высокую доступность. Набор-реплика состоит из двух или более предметов. MongoDB экземпляров. Каждый участник репликационного набора может в любой момент выступать в роли основной или вторичной реплики. Основная реплика — это главный сервер, который взаимодействует с клиентом и выполняет все операции чтения/записи. Вторичные реплики поддерживают копию данных основной реплики, используя встроенную репликацию. При отказе основной реплики репликационный набор автоматически переключается на вторичную, которая затем становится основным сервером.
- Балансировка нагрузки – MongoDB использует концепцию сегментирования для горизонтального масштабирования путем разделения данных на несколько MongoDB экземпляров. MongoDB может работать на нескольких серверах, балансируя нагрузку и/или дублируя данные, чтобы поддерживать работоспособность системы в случае сбоя оборудования.
Моделирование данных в MongoDB
Как мы видели во вводной части, данные в MongoDB имеет гибкую схему. В отличие от SQL базы данных, где перед вставкой данных необходимо объявить схему таблицы, MongoDBКоллекции не обеспечивают соблюдение структуры документа. Именно такая гибкость делает MongoDB такой сильный.
При моделировании данных в MongoDBПримите во внимание следующие моменты:
- Каковы потребности приложения? – Проанализируйте бизнес-потребности приложения и определите, какие данные и какого типа необходимы для его работы. Исходя из этого, убедитесь, что структура документа определяется соответствующим образом.
- Какие существуют модели извлечения данных? – Если вы прогнозируете интенсивное использование запросов, рассмотрите возможность использования индексов в вашей модели данных для повышения эффективности запросов.
- Часто ли в базе данных происходят вставки, обновления и удаления данных? Пересмотрите использование индексов или, при необходимости, включите сегментирование в вашу модель данных, чтобы повысить общую эффективность. MongoDB окружающей среды.
Разница между MongoDB и СУБД
Ниже приведены некоторые ключевые различия в терминах между MongoDB и СУБД:
| RDBMS | MongoDB | <b>Сравнение</b> |
|---|---|---|
| Таблица | | In RDBMSВ таблице содержатся столбцы и строки, используемые для хранения данных, тогда как в MongoDB Подобная структура называется коллекцией. Коллекция содержит документы, которые, в свою очередь, содержат поля, представляющие собой пары ключ-значение. |
| Строка | Документ | В РСУБД строка представляет собой один неявно структурированный элемент данных в таблице. В MongoDB, данные хранятся в документах. |
| Column | Поиск | В СУБД столбец обозначает набор значений данных. Эти в MongoDB Они известны как поля. |
| Играя | Встроенные документы | В реляционных СУБД данные иногда распределены по нескольким таблицам, и для отображения полного представления всех данных иногда используется объединение таблиц. MongoDBДанные обычно хранятся в одной коллекции, но разделены с помощью встроенных документов. Поэтому в данном случае отсутствует понятие объединений (joins). MongoDB. |
Помимо различий в терминологии, ниже приведены еще несколько отличий:
- Реляционные базы данных известны тем, что обеспечивают целостность данных. Это не является явным требованием в MongoDB.
- СУБД требует, чтобы данные были нормированный Во-первых, это позволяет предотвратить появление «сиротских» записей и дубликатов. Нормализация данных затем требует большего количества таблиц, что, в свою очередь, приведет к увеличению числа объединений таблиц, а значит, и к увеличению количества ключей и индексов. По мере роста баз данных производительность может стать проблемой. Опять же, это не является явным требованием в MongoDB. MongoDB является гибким и не требует предварительной нормализации данных.


