MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Защо MongoDB – 10 причини да научите MongoDB за 2022 г

Както виждаме в днешния свят, че повечето хора преминават към MongoDB, все още има много хора, които предпочитат да използват традиционна релационна база данни. Тук ще обсъдим защо MongoDB трябва да изберем? Както всяка монета има две лица, тя има своите предимства и ограничения.

И така, готови ли сте да проучите причините да научите MongoDB?

Защо MongoDB?

Тъй като това е NoSQL база данни, ето защо има много причини да научите MongoDB. Тези причини доведоха фондацията до световната популярност на MongoDB.

Това са някои причини защо MongoDB е популярен.

  • Рамка за агрегиране
  • BSON формат
  • Разделяне
  • Ad-hoc заявка
  • Ограничена колекция
  • Индексиране
  • Съхранение на файлове
  • Репликация
  • Услуга за управление на MongoDB (MMS)

Основни причини да научите MongoDB

i) Рамка за агрегиране

Можем да го използваме по много ефективен начин от MongoDB. MapReduce може да се използва за пакетна обработка на данни, а също и за операции за агрегиране. MapReduce не е нищо друго освен процес, при който големи масиви от данни ще обработват и генерират резултати с помощта на паралелни и разпределени алгоритми в клъстери.

Състои се от два набора от операции сами по себе си, те са:Map() и Reduce().

  • Карта(): Той изпълнява операции като филтриране на данните и след това извършване на сортиране на този набор от данни.
  • Намаляване(): Той изпълнява операцията по обобщаване на всички данни след операцията map().

Aggregation Framework

ii) BSON формат

Това е формат за съхранение, подобен на JSON. BSON е съкращение от Binary JSON . BSON е двоично кодирана сериализация на JSON като документи и MongoDB го използва, когато да съхранява документи в колекции. Можем да добавяме типове данни като дата и двоичен файл (JSON не се поддържа).

Форматът BSON използва _id като първичен ключ тук. Както е посочено, _id се използва като първичен ключ, така че има уникална стойност, свързана със себе си, наречена ObjectId, която се генерира или от драйвер на приложението, или от услугата MongoDB.

По-долу е даден пример за разбиране на формата BSON по по-добър начин:

Пример-

{
"_id": ObjectId("12e6789f4b01d67d71da3211"),
"title": "Key features Of MongoDB",
"comments": [
...
]
}

Друго предимство на използването на формат BSON е, че позволява вътрешно индексиране и картографиране на свойствата на документа. Тъй като е проектиран да бъде по-ефективен по размер и скорост, той увеличава пропускателната способност за четене/запис на MongoDB.

iii. Раздробяване

Основният проблем с всяко уеб/мобилно приложение е мащабирането. За да се преодолее това, MongoDB добави функция за разделяне. Това е метод, при който данните се разпределят между множество машини. С разделянето се осигурява хоризонтална мащабируемост.

Това е сложен процес и се извършва с помощта на няколко парчета. Всеки шард съдържа част от данни и функционира като отделна база данни . Обединяването на всички парчета заедно образува единна логическа база данни. Операциите тук се извършват от рутери за заявки.

iv. Ad hoc заявки

MongoDB поддържа заявка за диапазон, регулярен израз и много други видове търсения. Заявките включват дефинирани от потребителя Javascript функции и може също да връща конкретни полета от документите. MongoDB може да поддържа ad hoc заявки чрез използване на уникален език за заявки или чрез индексиране на BSON документи.

Нека видим разликата между SQL SELECT заявка и наподобяваща заявка:

напр. Извличане на всички записи на таблицата на учениците с име на ученик като ABC.

  • SQL изявление – SELECT * FROM Students WHERE stud_name LIKE ‘%ABC%’;
  • Заявка на MongoDB – db.Students.find({stud_name:/ABC/ });

v. Без схема

Тъй като е база данни без схеми (написана на C++), тя е много по-гъвкава от традиционната база данни. Поради това данните не изискват много за настройване за себе си и намаляват триенето с ООП. Ако искате да запишете обект, просто го сериализирайте в JSON и го изпратете до MongoDB.

vi. Ограничени колекции

MongoDB поддържа ограничена колекция, тъй като има фиксиран размер на колекциите в него. Той поддържа реда на вмъкване. След достигане на лимита той започва да се държи като кръгова опашка.

Пример – Ограничаване на нашата ограничена колекция до 2MB

  • db.createCollection(’logs’, {capped:true, size:2097152})

viii. Индексиране

За подобряване на производителността на търсениятасе създават индекси . Можем да индексираме всяко поле в документа на MongoDB както основно, така и второстепенно.

Поради тази причина механизмът на базата данни може ефективно да разрешава заявки.

Индексиране

viii. Съхранение на файлове

MongoDB може да се използва и като система за съхранение на файлове, която избягва дисбаланса на натоварването, а също и репликацията на данни. Тази функция се изпълнява с помощта на Grid File System , той е включен в драйвери, които съхраняват файлове.

Съхранение на файлове в MongoDB

ix. Репликация

Репликацията се осигурява чрез разпространение на данни между различни машини. Може да има един първичен възел и повече от един вторичен възел в него (набор от реплики).

Този комплект действа като главен-роб. Тук главен може да извършва четене и запис, а подчинен копира данни от главен като резервно копие само за операция за четене.

Репликация

x. Услуга за управление на MongoDB (MMS)

MongoDB има много мощна функция на MMS, благодарение на която можем да проследяваме нашите бази данни или машини и ако е необходимо можем да архивираме нашите данни. Той също така проследява хардуерни показатели за управление на внедряването.

Той предоставя функция за персонализирано предупреждение, поради което можем да открием проблеми, преди нашият екземпляр на MongoDB да засегне.

Услуга за управление на MongoDB (MMS)

Предимства на MongoDB

Това е втората фаза на Защо MongoDB, предимства.

i. Балансиране на натоварване

Ако разполагате с голям набор от данни, които трябва да обработите, тогава можете да разпределите трафика между различни машини с помощта на балансиране на натоварването.

Той помага на потребителя по начин, по който можете да продължите работата си, дори ако един от възлите/машините е спрял да работи поради някаква причина. Другите възли ще поддържат работата в продължение и вашата обработка няма да спре.

Балансиране на натоварването

ii. Раздробяване

С помощта на разделяне можем да направим хоризонтално мащабиране. Което не е възможно с помощта на релационна база данни. Използвайки този метод, можем да разпределим данни между различни машини.

Правим части от данните, които имаме със себе си, и след това се опитваме да направим задачата по обработка малко лесна.

Разделяне в MongoDB

iii. Гъвкавост

Той не изисква структури от данни, които са унифицирани по своята същност във всички обекти, които се използват. Това улеснява използването на MongoDB. С помощта на динамична схема е много лесно да се използва MongoDB.

Гъвкавост

iv. Скорост

MongoDB може бързо и лесно да обработва данните. Но това е валидно, докато данните ви са във формат на документ. Можем да кажем, че скоростта му автоматично се увеличава, тъй като обработва голямо количество неструктурирани данни в рамките на секунди, което се чувства като магия.

Предимства и недостатъци на MongoDB

Недостатъци/Ограничения на MongoDB

Това етретата фаза на Защо MongoDB , ограничения.

i. Използване на памет

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

Използване на памет

ii. Няма присъединявания

Тъй като много лесно прилагаме обединения в релационната база данни, не е възможно да прилагаме обединения в MongoDB. Така че, ако искате да приложите обединявания в него, тогава ще трябва да напишете много сложни заявки, за да извършите операция за присъединяване тук.

iii. Все още в процес на разработка

Разработен е SQL през 80-те години на миналия век и MongoDB току-що се появи през 2009 г. Поради тази причина MongoDB все още не е напълно документиран или тестван и няма пълна подкрепа от експертите по него.

Резюме

Така че, след като го прочетете, можете да получите представа защо да го използваме, какви са неговите предимства и недостатъци. Освен това, ако имате някакви запитвания, не се колебайте да попитате в секцията за коментари по-долу, ще се радваме да ви помогнем.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Често срещани въпроси за интервю за MongoDB

  2. проекцията не работи със заявка за намиране

  3. Преброяване на групи с MongoDB, използвайки рамка за агрегиране

  4. MongoDB findAndModify()

  5. Премахнете дубликатите от MongoDB