Що таке MongoDB? Archiтектура, функції та приклад
⚡ Розумний підсумок
MongoDB — це документоорієнтована NoSQL база даних, що використовується для зберігання великих обсягів даних, використовуючи колекції та документи замість таблиць та рядків. У цьому ресурсі пояснюється MongoDB функції, приклад документа, ключові компоненти архітектури, причини використання, моделювання даних та відмінності від реляційної бази даних.
Що таке MongoDB?
MongoDB це документно-орієнтована база даних NoSQL, яка використовується для зберігання великих обсягів даних. Замість використання таблиць і рядків, як у традиційних реляційних базах даних, MongoDB використовує колекції та документи. Документи складаються з пар ключ-значення, які є основною одиницею даних у MongoDBКолекції містять набори документів та функцій, що є еквівалентом таблиць реляційної бази даних. MongoDB це база даних, яка з’явилася на світ приблизно в середині 2000-х років.
MongoDB Функції
- Кожна база даних містить колекції, які, у свою чергу, містять документи. Кожен документ може бути різним, з різною кількістю полів. Розмір та вміст кожного документа можуть відрізнятися один від одного.
- Структура документа більше відповідає тому, як розробники будують свої класи та об’єкти на відповідних мовах програмування. Розробники часто кажуть, що їхні класи не є рядками та стовпцями, а мають чітку структуру з парами ключ-значення.
- Рядки (або документи, як викликано в MongoDB) не потребують попереднього визначення схеми. Натомість поля можна створювати на льоту.
- Доступна модель даних MongoDB дозволяє легше представляти ієрархічні зв'язки, зберігати масиви та інші складніші структури.
- масштабованість - The MongoDB Середовища дуже масштабовані. Компанії по всьому світу мають визначені кластери, деякі з яких використовують понад 100 вузлів з приблизно мільйонами документів у базі даних.
MongoDB Приклад
Наведений нижче приклад показує, як можна моделювати документ MongoDB.
- Поле _id додається MongoDB для однозначної ідентифікації документа в колекції.
- Ви можете зазначити, що дані замовлення (OrderID, Product та Quantity), які в RDBMS зазвичай зберігаються в окремій таблиці, насправді зберігаються як вбудований документ у самій колекції. MongoDBЦе одна з ключових відмінностей у тому, як моделюються дані в MongoDB.
Ключові компоненти MongoDB Archiтектура
Нижче наведено кілька поширених термінів, які використовуються в MongoDB:
- _id – Це поле обов’язкове для кожного MongoDB документ. Поле _id представляє унікальне значення в MongoDB документ. Поле _id схоже на первинний ключ документа. Якщо ви створюєте новий документ без поля _id, MongoDB автоматично створить поле. Наприклад, якщо ми бачимо приклад наведеної вище таблиці клієнтів, MongoDB додасть 24-значний унікальний ідентифікатор до кожного документа в колекції.
| _Id | Ідентифікатор клієнта | Ім'я клієнта | OrderID |
|---|---|---|---|
| 563479cc8a8a4246bd27d784 | 11 | Guru99 | 111 |
| 563479cc7a8a4246bd47d784 | 22 | Тревор Сміт | 222 |
| 563479cc9a8a4246bd57d784 | 33 | Ніколь | 333 |
- COLLECTION – Це групаping of MongoDB документи. Колекція є еквівалентом таблиці, яка створюється в будь-якій іншій СУБД, такій як Oracle або MS SQL. Колекція існує в одній базі даних. Як видно зі вступу, колекції не нав'язують жодної структури.
- Курсор – Це вказівник на набір результатів запиту. Клієнти можуть ітерувати курсор, щоб отримати результати.
- Database – Це контейнер для колекцій, як у RDBMS, де він є контейнером для таблиць. Кожна база даних отримує свій власний набір файлів у файловій системі. A MongoDB сервер може зберігати кілька баз даних.
- Документ – Запис в а MongoDB Колекція, по суті, називається документом. Документ, у свою чергу, складатиметься з назв полів та значень.
- Поле – Пара «ім’я-значення» в документі. Документ має нуль або більше полів. Поля аналогічні стовпцям у реляційних базах даних. На наступній діаграмі показано приклад полів із парами «ключ-значення». Отже, у наведеному нижче прикладі CustomerID та 11 є однією з пар «ключ-значення», визначених у документі.
- JSON – Це відомо як JavaScript Нотація об’єктів. Це зрозумілий для людини формат звичайного тексту для вираження структурованих даних. Наразі JSON підтримується багатьма мовами програмування.
Коротка примітка про ключову різницю між полем _id і звичайним полем колекції. Поле _id використовується для унікальної ідентифікації документів у колекції та автоматично додається MongoDB коли колекція створена.
Навіщо використовувати MongoDB?
Нижче наведено кілька причин, чому варто почати використовувати MongoDB:
- Документоорієнтований – Так як MongoDB це NoSQL замість того, щоб мати дані у форматі реляційного типу, вона зберігає дані в документах. Це робить MongoDB дуже гнучкий та адаптивний до реальних ситуацій та вимог ділового світу.
- Спеціальні запити - MongoDB підтримує пошук за полями, запитами діапазону та пошук за регулярними виразами. Можна створювати запити для повернення певних полів у документах.
- Індексація – Індекси можна створювати для покращення ефективності пошуку в MongoDB. Будь-яке поле в a MongoDB документ можна проіндексувати.
- Реплікація - MongoDB може забезпечити високу доступність за допомогою наборів реплік. Набір реплік складається з двох або більше MongoDB екземпляри. Кожен член набору реплік може будь-коли виступати в ролі основної або додаткової репліки. Основна репліка – це головний сервер, який взаємодіє з клієнтом і виконує всі операції читання/запису. Вторинні репліки зберігають копію даних основного сервера за допомогою вбудованої реплікації. Коли основна репліка виходить з ладу, набір реплік автоматично перемикається на вторинний, і тоді він стає основним сервером.
- Балансування навантаження - MongoDB використовує концепцію шардингу для горизонтального масштабування шляхом поділу даних на кілька MongoDB екземпляри. MongoDB може працювати на кількох серверах, балансуючи навантаження та/або дублюючи дані, щоб підтримувати працездатність системи у випадку апаратного збою.
Моделювання даних в MongoDB
Як ми бачили з вступного розділу, дані у MongoDB має гнучку схему. На відміну від в SQL бази даних, де ви повинні мати схему таблиці, оголошену перед вставкою даних, MongoDBКолекції не забезпечують дотримання структури документа. Саме така гнучкість робить MongoDB такий потужний.
Під час моделювання даних у MongoDB, пам’ятайте про наступне:
- Які потреби має додаток – Розгляньте бізнес-потреби застосунку та визначте, які дані та типи даних потрібні для застосунку. Виходячи з цього, переконайтеся, що структура документа визначена відповідно.
- Які шаблони пошуку даних – Якщо ви передбачаєте інтенсивне використання запитів, розгляньте можливість використання індексів у вашій моделі даних для підвищення ефективності запитів.
- Чи часто відбуваються вставки, оновлення та видалення в базі даних? Перегляньте використання індексів або, якщо це необхідно, включіть шардінг у ваш дизайн моделювання даних, щоб підвищити ефективність вашої загальної системи. MongoDB середовищі.
Різниця між MongoDB & RDBMS
Нижче наведено деякі ключові відмінності між термінами MongoDB та РСУБД:
| СУБД | MongoDB | Різниця |
|---|---|---|
| таблиця | COLLECTION | In СУБДтаблиця містить стовпці та рядки, які використовуються для зберігання даних, тоді як у MongoDB Ця ж структура відома як колекція. Колекція містить документи, які, у свою чергу, містять поля, що, у свою чергу, є парами ключ-значення. |
| Рядок | Документ | У RDBMS рядок представляє один неявно структурований елемент даних у таблиці. в MongoDB, дані зберігаються в документах. |
| Колонка | Поле | У RDBMS стовпець позначає набір значень даних. Ці в MongoDB відомі як поля. |
| з'єднання | Вбудовані документи | У реляційних СУБД дані іноді розподіляються по різних таблицях, і для того, щоб показати повне уявлення про всі дані, іноді між таблицями формується об'єднання для отримання даних. MongoDB, дані зазвичай зберігаються в одній колекції, але розділені за допомогою вбудованих документів. Тому в них немає концепції об'єднань. MongoDB. |
Окрім відмінностей у термінах, нижче наведено кілька інших відмінностей:
- Відомо, що реляційні бази даних забезпечують цілісність даних. Це не є чіткою вимогою в MongoDB.
- RDBMS вимагає, щоб дані були нормалізується по-перше, щоб запобігти появі осиротілих записів та дублікатів. Нормалізація даних вимагає більшої кількості таблиць, що призведе до більшої кількості об'єднань таблиць, а отже, потребує більшої кількості ключів та індексів. Зі зростанням баз даних продуктивність може стати проблемою. Знову ж таки, це не є явною вимогою в MongoDB. MongoDB є гнучким і не вимагає попередньої нормалізації даних.



