Що таке MongoDB? Archiтектура, функції та приклад

⚡ Розумний підсумок

MongoDB — це документоорієнтована NoSQL база даних, що використовується для зберігання великих обсягів даних, використовуючи колекції та документи замість таблиць та рядків. У цьому ресурсі пояснюється MongoDB функції, приклад документа, ключові компоненти архітектури, причини використання, моделювання даних та відмінності від реляційної бази даних.

  • 📄 Модель документа: Дані зберігаються у вигляді документів типу «ключ-значення» всередині колекцій, а не таблиць.
  • 🧩 Гнучка схема: Поля створюються на льоту без попередньо визначеної структури.
  • 🏗️ Основні компоненти: _id, колекція, документ, поле, курсор, база даних та JSON.
  • Навіщо це використовувати: Спеціальні запити, індексація, реплікація та шардінг для масштабування.
  • 🔄 Проти РСУБД: Колекції замінюють таблиці, а вбудовані документи замінюють об'єднання.

Що таке MongoDB

Що таке MongoDB?

MongoDB це документно-орієнтована база даних NoSQL, яка використовується для зберігання великих обсягів даних. Замість використання таблиць і рядків, як у традиційних реляційних базах даних, MongoDB використовує колекції та документи. Документи складаються з пар ключ-значення, які є основною одиницею даних у MongoDBКолекції містять набори документів та функцій, що є еквівалентом таблиць реляційної бази даних. MongoDB це база даних, яка з’явилася на світ приблизно в середині 2000-х років.

MongoDB Функції

  1. Кожна база даних містить колекції, які, у свою чергу, містять документи. Кожен документ може бути різним, з різною кількістю полів. Розмір та вміст кожного документа можуть відрізнятися один від одного.
  2. Структура документа більше відповідає тому, як розробники будують свої класи та об’єкти на відповідних мовах програмування. Розробники часто кажуть, що їхні класи не є рядками та стовпцями, а мають чітку структуру з парами ключ-значення.
  3. Рядки (або документи, як викликано в MongoDB) не потребують попереднього визначення схеми. Натомість поля можна створювати на льоту.
  4. Доступна модель даних MongoDB дозволяє легше представляти ієрархічні зв'язки, зберігати масиви та інші складніші структури.
  5. масштабованість - The MongoDB Середовища дуже масштабовані. Компанії по всьому світу мають визначені кластери, деякі з яких використовують понад 100 вузлів з приблизно мільйонами документів у базі даних.

MongoDB Приклад

Наведений нижче приклад показує, як можна моделювати документ MongoDB.

  1. Поле _id додається MongoDB для однозначної ідентифікації документа в колекції.
  2. Ви можете зазначити, що дані замовлення (OrderID, Product та Quantity), які в RDBMS зазвичай зберігаються в окремій таблиці, насправді зберігаються як вбудований документ у самій колекції. MongoDBЦе одна з ключових відмінностей у тому, як моделюються дані в MongoDB.

MongoDB Приклад

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

Нижче наведено кілька поширених термінів, які використовуються в MongoDB:

  1. _id – Це поле обов’язкове для кожного MongoDB документ. Поле _id представляє унікальне значення в MongoDB документ. Поле _id схоже на первинний ключ документа. Якщо ви створюєте новий документ без поля _id, MongoDB автоматично створить поле. Наприклад, якщо ми бачимо приклад наведеної вище таблиці клієнтів, MongoDB додасть 24-значний унікальний ідентифікатор до кожного документа в колекції.
_Id Ідентифікатор клієнта Ім'я клієнта OrderID
563479cc8a8a4246bd27d784 11 Guru99 111
563479cc7a8a4246bd47d784 22 Тревор Сміт 222
563479cc9a8a4246bd57d784 33 Ніколь 333
  1. COLLECTION – Це групаping of MongoDB документи. Колекція є еквівалентом таблиці, яка створюється в будь-якій іншій СУБД, такій як Oracle або MS SQL. Колекція існує в одній базі даних. Як видно зі вступу, колекції не нав'язують жодної структури.
  2. Курсор – Це вказівник на набір результатів запиту. Клієнти можуть ітерувати курсор, щоб отримати результати.
  3. Database – Це контейнер для колекцій, як у RDBMS, де він є контейнером для таблиць. Кожна база даних отримує свій власний набір файлів у файловій системі. A MongoDB сервер може зберігати кілька баз даних.
  4. Документ – Запис в а MongoDB Колекція, по суті, називається документом. Документ, у свою чергу, складатиметься з назв полів та значень.
  5. Поле – Пара «ім’я-значення» в документі. Документ має нуль або більше полів. Поля аналогічні стовпцям у реляційних базах даних. На наступній діаграмі показано приклад полів із парами «ключ-значення». Отже, у наведеному нижче прикладі CustomerID та 11 є однією з пар «ключ-значення», визначених у документі.

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

  1. JSON – Це відомо як JavaScript Нотація об’єктів. Це зрозумілий для людини формат звичайного тексту для вираження структурованих даних. Наразі JSON підтримується багатьма мовами програмування.

Коротка примітка про ключову різницю між полем _id і звичайним полем колекції. Поле _id використовується для унікальної ідентифікації документів у колекції та автоматично додається MongoDB коли колекція створена.

Навіщо використовувати MongoDB?

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

  1. Документоорієнтований – Так як MongoDB це NoSQL замість того, щоб мати дані у форматі реляційного типу, вона зберігає дані в документах. Це робить MongoDB дуже гнучкий та адаптивний до реальних ситуацій та вимог ділового світу.
  2. Спеціальні запити - MongoDB підтримує пошук за полями, запитами діапазону та пошук за регулярними виразами. Можна створювати запити для повернення певних полів у документах.
  3. Індексація – Індекси можна створювати для покращення ефективності пошуку в MongoDB. Будь-яке поле в a MongoDB документ можна проіндексувати.
  4. Реплікація - MongoDB може забезпечити високу доступність за допомогою наборів реплік. Набір реплік складається з двох або більше MongoDB екземпляри. Кожен член набору реплік може будь-коли виступати в ролі основної або додаткової репліки. Основна репліка – це головний сервер, який взаємодіє з клієнтом і виконує всі операції читання/запису. Вторинні репліки зберігають копію даних основного сервера за допомогою вбудованої реплікації. Коли основна репліка виходить з ладу, набір реплік автоматично перемикається на вторинний, і тоді він стає основним сервером.
  5. Балансування навантаження - MongoDB використовує концепцію шардингу для горизонтального масштабування шляхом поділу даних на кілька MongoDB екземпляри. MongoDB може працювати на кількох серверах, балансуючи навантаження та/або дублюючи дані, щоб підтримувати працездатність системи у випадку апаратного збою.

Моделювання даних в MongoDB

Як ми бачили з вступного розділу, дані у MongoDB має гнучку схему. На відміну від в SQL бази даних, де ви повинні мати схему таблиці, оголошену перед вставкою даних, MongoDBКолекції не забезпечують дотримання структури документа. Саме така гнучкість робить MongoDB такий потужний.

Під час моделювання даних у MongoDB, пам’ятайте про наступне:

  1. Які потреби має додаток – Розгляньте бізнес-потреби застосунку та визначте, які дані та типи даних потрібні для застосунку. Виходячи з цього, переконайтеся, що структура документа визначена відповідно.
  2. Які шаблони пошуку даних – Якщо ви передбачаєте інтенсивне використання запитів, розгляньте можливість використання індексів у вашій моделі даних для підвищення ефективності запитів.
  3. Чи часто відбуваються вставки, оновлення та видалення в базі даних? Перегляньте використання індексів або, якщо це необхідно, включіть шардінг у ваш дизайн моделювання даних, щоб підвищити ефективність вашої загальної системи. MongoDB середовищі.

Різниця між MongoDB & RDBMS

Нижче наведено деякі ключові відмінності між термінами MongoDB та РСУБД:

СУБД MongoDB Різниця
таблиця COLLECTION In СУБДтаблиця містить стовпці та рядки, які використовуються для зберігання даних, тоді як у MongoDB Ця ж структура відома як колекція. Колекція містить документи, які, у свою чергу, містять поля, що, у свою чергу, є парами ключ-значення.
Рядок Документ У RDBMS рядок представляє один неявно структурований елемент даних у таблиці. в MongoDB, дані зберігаються в документах.
Колонка Поле У RDBMS стовпець позначає набір значень даних. Ці в MongoDB відомі як поля.
з'єднання Вбудовані документи У реляційних СУБД дані іноді розподіляються по різних таблицях, і для того, щоб показати повне уявлення про всі дані, іноді між таблицями формується об'єднання для отримання даних. MongoDB, дані зазвичай зберігаються в одній колекції, але розділені за допомогою вбудованих документів. Тому в них немає концепції об'єднань. MongoDB.

Окрім відмінностей у термінах, нижче наведено кілька інших відмінностей:

  1. Відомо, що реляційні бази даних забезпечують цілісність даних. Це не є чіткою вимогою в MongoDB.
  2. RDBMS вимагає, щоб дані були нормалізується по-перше, щоб запобігти появі осиротілих записів та дублікатів. Нормалізація даних вимагає більшої кількості таблиць, що призведе до більшої кількості об'єднань таблиць, а отже, потребує більшої кількості ключів та індексів. Зі зростанням баз даних продуктивність може стати проблемою. Знову ж таки, це не є явною вимогою в MongoDB. MongoDB є гнучким і не вимагає попередньої нормалізації даних.

Поширені запитання

MongoDB зберігає великі обсяги неструктурованих та напівструктурованих даних, що робить його корисним для конвеєрів штучного інтелекту та машинного навчання. Його гнучкі документи містять навчальні дані, набори функцій та метадані моделі, а Atlas додає векторний пошук для програм штучного інтелекту.

Так. MongoDB Векторний пошук Atlas дозволяє зберігати та запитувати вбудовування векторів разом з вашими документами. Це підтримує семантичний пошук, рекомендації та генерацію з доповненим пошуком для застосунків штучного інтелекту без окремої векторної бази даних.

MongoDB Community Edition є безкоштовним та з відкритим вихідним кодом. MongoDB також пропонує Atlas, керований хмарний сервіс з безкоштовним рівнем, та Enterprise Edition з розширеною безпекою та підтримкою за окрему плату.

Багато великих організацій використовують MongoDB для гнучкого зберігання великих обсягів даних, зокрема для компаній у сфері електронної комерції, ігор, Інтернету речей та управління контентом. Його масштабованість завдяки шардингу та реплікації підходить для програм з мільйонами документів.

Підсумуйте цей пост за допомогою: