sql >> Database >  >> NoSQL >> MongoDB

Waarom MongoDB - 10 redenen om MongoDB te leren voor 2022

Zoals we in de wereld van vandaag zien dat de meeste mensen overstappen op MongoDB, zijn er nog steeds velen die de voorkeur geven aan een traditionele relationele database. Hier zullen we bespreken waarom MongoDB we zouden moeten kiezen? Zoals elke munt twee gezichten heeft, heeft het zijn eigen voordelen en beperkingen.

Dus, ben je klaar om de redenen te onderzoeken om MongoDB te leren?

Waarom MongoDB?

Omdat het een NoSQL-database is, heeft het veel redenen om MongoDB te leren. Deze redenen hebben de stichting geleid tot de wereldwijde populariteit van MongoDB.

Dit zijn enkele redenen waarom MongoDB populair is.

  • Aggregatieraamwerk
  • BSON-indeling
  • Sharden
  • Ad-hocquery
  • Afgetopte collectie
  • Indexeren
  • Bestandsopslag
  • Replicatie
  • MongoDB Management Service (MMS)

Belangrijkste redenen om MongoDB te leren

i) Aggregatiekader

We kunnen het op een zeer efficiënte manier gebruiken door MongoDB. MapReduce kan worden gebruikt voor batchverwerking van gegevens en ook voor aggregatiebewerkingen. MapReduce is niets anders dan een proces, waarin grote datasets resultaten zullen verwerken en genereren met behulp van parallelle en gedistribueerde algoritmen op clusters.

Het bestaat op zichzelf uit twee sets bewerkingen, namelijk:Map() en Reduce().

  • Kaart(): Het voert bewerkingen uit zoals het filteren van de gegevens en vervolgens het sorteren op die gegevensset.
  • Verminder(): Het voert de bewerking uit van het samenvatten van alle gegevens na de bewerking map().

Aggregatieraamwerk

ii) BSON-indeling

Het is JSON-achtige opslag een formaat. BSON staat voor Binaire JSON . BSON is binair gecodeerde serialisatie van JSON zoals documenten en MongoDB gebruikt het, wanneer documenten in collecties moeten worden opgeslagen. We kunnen gegevenstypen zoals datum en binair toevoegen (JSON ondersteunt niet).

Het BSON-formaat maakt hier gebruik van _id als primaire sleutel. Zoals vermeld, wordt _id als primaire sleutel gebruikt, dus het heeft een unieke waarde die aan zichzelf is gekoppeld, genaamd ObjectId, die wordt gegenereerd door het toepassingsstuurprogramma of de MongoDB-service.

Hieronder vindt u een voorbeeld om het BSON-formaat beter te begrijpen:

Voorbeeld-

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

Een ander voordeel van het gebruik van het BSON-formaat is dat het documenteigenschappen intern kan indexeren en toewijzen. Omdat het is ontworpen om efficiënter te zijn qua grootte en snelheid, verhoogt het de lees-/schrijfdoorvoer van MongoDB.

iii. Scheren

Het grootste probleem met elke web-/mobiele applicatie is schalen. Om dit te verhelpen heeft MongoDB een sharding-functie toegevoegd. Het is een methode waarbij gegevens over meerdere machines worden verspreid. Horizontale schaalbaarheid wordt geleverd met de sharding.

Het is een ingewikkeld proces en wordt gedaan met behulp van verschillende scherven. Elke scherf bevat een deel van de gegevens en functioneert als een afzonderlijke database . Het samenvoegen van alle shards vormt een enkele logische database. Bewerkingen hier worden uitgevoerd door query-routers.

iv. Ad-hocvragen

MongoDB ondersteunt bereikquery's, reguliere expressies en nog veel meer soorten zoekopdrachten. Query's bevatten door de gebruiker gedefinieerde Javascript-functies en het kan ook specifieke velden uit de documenten retourneren. MongoDB kan ad-hocquery's ondersteunen door een unieke querytaal te gebruiken of door BSON-documenten te indexeren.

Laten we eens kijken wat het verschil is tussen SQL SELECT-query en vergelijkbare query:

bijv. Alle records van de studententafel ophalen met de naam van de student, zoals ABC.

  • SQL-verklaring – SELECT * FROM Studenten WHERE stud_name LIKE '%ABC%';
  • MongoDB-query – db.Students.find({stud_name:/ABC/ });

v. Schema-minder

Omdat het een database zonder schema is (geschreven in C++), is het veel flexibeler dan de traditionele database. Hierdoor hoeven de gegevens niet veel voor zichzelf in te stellen en wordt de wrijving met OOP verminderd. Als u een object wilt opslaan, serialiseert u het naar JSON en stuurt u het naar MongoDB.

vi. Afgetopte collecties

MongoDB ondersteunt gelimiteerde verzamelingen, omdat het een vaste grootte van verzamelingen heeft in het. Het handhaaft de invoegvolgorde. Zodra de limiet is bereikt, begint het zich te gedragen als een cirkelvormige wachtrij.

Voorbeeld – Onze gelimiteerde verzameling beperken tot 2 MB

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

viii. Indexeren

Om de prestaties van zoekopdrachten te verbeteren, worden er indexen gemaakt . We kunnen elk veld in het MongoDB-document indexeren, zowel primair als secundair.

Om deze reden kan de database-engine query's efficiënt oplossen.

Indexeren

viii. Bestandsopslag

MongoDB kan ook worden gebruikt als een bestandsopslagsysteem, dat onbalans in de belasting en ook gegevensreplicatie voorkomt. Deze functie wordt uitgevoerd met behulp van Grid File System , het is opgenomen in stuurprogramma's waarin bestanden worden opgeslagen.

Bestandsopslag in MongoDB

ix. Replicatie

Replicatie wordt geboden door gegevens over verschillende machines te distribueren. Het kan één primaire knoop en meer dan één secundaire knoop bevatten (replicaset).

Deze set werkt als een meester-slaaf. Hier kan een master lezen en schrijven uitvoeren en een slave kopieert gegevens van een master als back-up, alleen voor een leesbewerking.

Replicatie

x. MongoDB-beheerservice (MMS)

MongoDB heeft een zeer krachtige functie van MMS, waardoor we onze databases of machines kunnen volgen en indien nodig een back-up van onze gegevens kunnen maken. Het houdt ook hardwarestatistieken bij voor het beheer van de implementatie.

Het biedt een functie van aangepaste waarschuwing, waardoor we problemen kunnen ontdekken voordat onze MongoDB-instantie invloed zal hebben.

MongoDB-beheerservice (MMS)

Voordelen van MongoDB

Dit is de tweede fase van Why MongoDB, voordelen.

ik. Load Balancing

Als u een grote hoeveelheid gegevens heeft die u moet verwerken, kunt u het verkeer verdelen over verschillende machines met behulp van taakverdeling.

Het helpt de gebruiker op een manier dat u uw werk kunt voortzetten, zelfs als een van de knooppunten/machines om de een of andere reden niet meer werkt. De andere knooppunten houden het werk in een vervolg en uw verwerking stopt niet.

Load Balancing

ii. Scheren

Met behulp van sharding kunnen we horizontaal schalen. Wat niet mogelijk is met behulp van een relationele database. Door deze methode te gebruiken, kunnen we gegevens over verschillende machines verdelen.

We maken scherven van de gegevens die we bij onszelf hebben en dan proberen we de verwerkingstaak een beetje makkelijk te maken.

Sharden in MongoDB

iii. Flexibiliteit

Het vereist geen datastructuren, die in de natuur verenigd zijn voor alle objecten die worden gebruikt. Dit maakt het gemakkelijker om MongoDB te gebruiken. Met behulp van een dynamisch schema is het heel gemakkelijk om MongoDB te gebruiken.

Flexibiliteit

iv. Snelheid

MongoDB kan de gegevens snel en eenvoudig verwerken. Maar dit is geldig tot uw gegevens in documentformaat zijn. We kunnen zeggen dat de snelheid automatisch toeneemt omdat het binnen enkele seconden een grote hoeveelheid ongestructureerde gegevens verwerkt, wat als magie aanvoelt.

MongoDB voordelen en nadelen

Nadelen/beperkingen van MongoDB

Dit is de derde fase van Why MongoDB , beperkingen.

ik. Geheugengebruik

Zoals we weten, bewaart MongoDB de sleutelnaam samen met elk document, dus het is duidelijk dat het een grote hoeveelheid geheugen zal verbruiken. En aangezien joins ook niet mogelijk zijn, wordt het erg moeilijk om met dubbele gegevens te werken.

Gebruik van geheugen

ii. Geen deelname

Omdat we heel gemakkelijk joins toepassen in de relationele database, is het niet mogelijk om joins toe te passen in MongoDB. Dus als je er joins in wilt toepassen, dan zul je veel complexe queries moeten schrijven om de join-bewerking hier uit te voeren.

iii. Nog in ontwikkeling

SQL is ontwikkeld in de jaren 80, en MongoDB is pas in 2009 ontstaan. Om deze reden is MongoDB nog niet volledig gedocumenteerd of getest en heeft het geen volledige ondersteuning van de experts ervan.

Samenvatting

Dus, na het lezen ervan, kun je een idee krijgen waarom we het zouden moeten gebruiken, wat de voor- en nadelen zijn. Bovendien, als je vragen hebt, stel ze dan gerust in de commentaarsectie hieronder, we zouden je graag helpen.


  1. De 10 beste MongoDB-hostingplatforms

  2. Fix "indexnaam moet een tekenreeks zijn" bij het laten vallen van meerdere indexen in MongoDB

  3. Een geneste array bijwerken met MongoDB

  4. Mongoose maakt geen indexen