sql >> Database teknologi >  >> NoSQL >> MongoDB

Hvorfor MongoDB – 10 grunde til at lære MongoDB for 2022

Som vi ser i dagens verden, at de fleste mennesker skifter til MongoDB, er der stadig mange, der foretrækker at bruge en traditionel relationsdatabase. Her vil vi diskutere, hvorfor MongoDB skal vi vælge? Ligesom hver mønt har to sider, har den sine egne fordele og begrænsninger.

Så er du klar til at udforske grundene til at lære MongoDB?

Hvorfor MongoDB?

Da det er en NoSQL-database, er det derfor, den har mange grunde til at lære MongoDB. Disse grunde har ført grundlaget til MongoDBs verdensomspændende popularitet.

Dette er nogle grunde til, hvorfor MongoDB er populært.

  • Aggregation Framework
  • BSON-format
  • Sharding
  • Ad hoc-forespørgsel
  • Begrænset samling
  • Indeksering
  • Fillagring
  • Replikering
  • MongoDB Management Service (MMS)

Top grunde til at lære MongoDB

i) Aggregeringsramme

Vi kan bruge det på en meget effektiv måde af MongoDB. MapReduce kan bruges til batchbehandling af data og også til aggregeringsoperationer. MapReduce er intet andet end en proces, hvor store datasæt vil behandle og generere resultater ved hjælp af parallelle og distribuerede algoritmer på klynger.

Den består af to sæt operationer i sig selv, de er:Map() og Reduce().

  • Kort(): Den udfører operationer som at filtrere dataene og derefter udføre sortering på det datasæt.
  • Reducer(): Den udfører operationen med at opsummere alle data efter map()-operationen.

Aggregeringsramme

ii) BSON-format

Det er JSON-lignende lagring et format. BSON står for Binary JSON . BSON er binærkodet serialisering af JSON som dokumenter og MongoDB bruger det, når man gemmer dokumenter i samlinger. Vi kan tilføje datatyper som dato og binær (JSON understøtter ikke).

BSON-format gør brug af _id som en primær nøgle herovre. Som nævnt bliver _id brugt som en primær nøgle, så den har en unik værdi forbundet med sig selv kaldet ObjectId, som enten genereres af applikationsdriveren eller MongoDB-tjenesten.

Nedenfor er et eksempel for at forstå BSON-formatet på en bedre måde:

Eksempel-

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

En anden fordel ved at bruge BSON-format er, at det gør det muligt internt at indeksere og kortlægge dokumentegenskaber. Da den er designet til at være mere effektiv i størrelse og hastighed, øger den læse-/skrivegennemstrømningen af ​​MongoDB.

iii. Sharding

Det største problem med enhver web-/mobilapplikation er skalering. For at overvinde denne har MongoDB tilføjet sharding-funktion. Det er en metode, hvor data distribueres på tværs af flere maskiner. Horisontal skalerbarhed leveres sammen med shardingen.

Det er en kompliceret proces og gøres ved hjælp af flere skår. Hvert shard rummer en del af data og fungerer som en separat database . At flette alle skærverne sammen danner en enkelt logisk database. Operationer herovre udføres af forespørgselsroutere.

iv. Ad hoc-forespørgsler

MongoDB understøtter rækkeviddeforespørgsel, regulært udtryk og mange flere typer søgninger. Forespørgsler inkluderer brugerdefinerede Javascript-funktioner, og det kan også returnere specifikke felter fra dokumenterne. MongoDB kan understøtte ad hoc-forespørgsler ved at bruge et unikt forespørgselssprog eller ved at indeksere BSON-dokumenter.

Lad os se forskellen mellem SQL SELECT-forespørgsel og en lignende forespørgsel:

For eksempel. Henter alle poster i elevtabellen med elevnavn som ABC.

  • SQL-erklæring – VÆLG * FRA Elever WHERE stud_name SOM '%ABC%';
  • MongoDB-forespørgsel – db.Students.find({stud_name:/ABC/ });

v. Skema-mindre

Da det er en skemaløs database (skrevet i C++), er den meget mere fleksibel end den traditionelle database. På grund af dette kræver dataene ikke meget at sætte op for sig selv og reduceret friktion med OOP. Hvis du vil gemme et objekt, skal du bare serialisere det til JSON og sende det til MongoDB.

vi. Afgrænsede samlinger

MongoDB understøtter begrænset samling, da den har en fast størrelse på samlinger i det. Den bevarer indsættelsesrækkefølgen. Når grænsen er nået, begynder den at opføre sig som en cirkulær kø.

Eksempel – Begrænsning af vores begrænsede samling til 2 MB

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

viii. Indeksering

For at forbedre ydeevnen af ​​søgninger bliver der oprettet indekser . Vi kan indeksere ethvert felt i MongoDB-dokumentet enten primært eller sekundært.

På grund af denne grund kan databasemotoren effektivt løse forespørgsler.

Indeksering

viii. Fillagring

MongoDB kan også bruges som et fillagringssystem, som undgår belastningsubalance og også datareplikering. Denne funktion udføres ved hjælp af Grid File System , det er inkluderet i drivere, som gemmer filer.

Fillagring i MongoDB

ix. Replikering

Replikering leveres ved at distribuere data på tværs af forskellige maskiner. Den kan have én primær node og mere end én sekundær node i sig (replikasæt).

Dette sæt fungerer som en mester-slave. Her kan en master udføre læsning og skrivning, og en slave kopierer data fra en master som backup kun til en læseoperation.

Replikering

x. MongoDB Management Service (MMS)

MongoDB har en meget kraftfuld funktion i MMS, på grund af hvilken vi kan spore vores databaser eller maskiner og om nødvendigt kan sikkerhedskopiere vores data. Det sporer også hardware-metrics til styring af implementeringen.

Det giver en funktion til brugerdefineret advarsel, på grund af hvilken vi kan opdage problemer, før vores MongoDB-instans vil påvirke.

MongoDB Management Service (MMS)

Fordele ved MongoDB

Dette er denanden fase af Why MongoDB, fordele.

i. Belastningsbalancering

Hvis du har et stort sæt data, som du skal behandle, kan du fordele trafikken mellem forskellige maskiner ved hjælp af belastningsbalancering.

Det hjælper brugeren på en måde, så du kan fortsætte dit arbejde, selvom en af ​​knudepunkterne/maskinerne er holdt op med at virke af en eller anden grund. De andre noder vil holde arbejdet i en fortsættelse, og din behandling vil ikke stoppe.

Belastningsbalancering

ii. Sharding

Ved hjælp af skæring kan vi lave vandret skalering. Hvilket ikke er muligt ved hjælp af en relationsdatabase. Ved at bruge denne metode kan vi distribuere data på tværs af forskellige maskiner.

Vi laver skår af de data, vi har med os selv, og så forsøger vi at gøre behandlingsopgaven en smule let.

Sharding i MongoDB

iii. Fleksibilitet

Det kræver ikke datastrukturer, der er forenet i naturen på tværs af alle de objekter, der bliver brugt. Dette gør det nemmere at bruge MongoDB. Ved hjælp af dynamisk skema er det meget nemt at bruge MongoDB.

Fleksibilitet

iv. Hastighed

MongoDB kan hurtigt og nemt behandle dataene. Men dette er gyldigt indtil dine data er i dokumentformat. Vi kan sige, at dens hastighed automatisk stiger, da den håndterer en stor mængde ustrukturerede data inden for få sekunder, hvilket føles som magi.

MongoDB fordele og ulemper

Ulemper/begrænsninger ved MongoDB

Dette er dentredje fase af Why MongoDB , begrænsninger.

i. Brug af hukommelse

Som vi ved, at MongoDB gemmer nøglenavnet sammen med hvert dokument, så det er indlysende, at det vil forbruge en stor mængde hukommelse. Og da joinforbindelser heller ikke er mulige, så bliver det meget svært at arbejde med duplikerede data.

Brug af hukommelse

ii. Ingen tilslutninger

Da vi meget nemt anvender joins i relationsdatabasen, er det ikke muligt at anvende joins i MongoDB. Så hvis du vil anvende joins i det, så bliver du nødt til at skrive mange komplekse forespørgsler for at udføre join-operation herovre.

iii. Stadig under udvikling

SQL blev udviklet i 1980'erne og MongoDB netop dukket op i 2009. Så af denne grund er MongoDB endnu ikke fuldt dokumenteret eller testet og har ikke fuld støtte fra eksperterne i det.

Oversigt

Så efter at have læst det, kan du få en idé om, hvorfor vi skal bruge det, hvad er dets fordele og ulemper. Desuden, hvis du har nogen spørgsmål, er du velkommen til at spørge i kommentarfeltet nedenfor, vi vil meget gerne hjælpe dig.


  1. Redis:Vis databasestørrelse/størrelse for nøgler

  2. Redis - Fejl:Værdien er ikke en gyldig float

  3. Hvordan forespørges dokumenter ved hjælp af _id felt i Java mongodb driver?

  4. Mongoose TypeError:Brugeren er ikke en konstruktør