Hvad er MongoDB? Architecture, Features & Eksempel

⚡ Smart opsummering

MongoDB er en dokumentorienteret NoSQL-database, der bruges til lagring af store mængder data, og som bruger samlinger og dokumenter i stedet for tabeller og rækker. Denne ressource forklarer MongoDB funktioner, et dokumenteksempel, nøglekomponenter i arkitekturen, grunde til at bruge det, datamodellering og hvordan det adskiller sig fra en relationsdatabase.

  • 📄 Dokumentmodel: Data gemmes som nøgleværdidokumenter i samlinger, ikke tabeller.
  • 🧩 Fleksibelt skema: Felter oprettes øjeblikkeligt uden en foruddefineret struktur.
  • 🏗️ Kerne komponenter: _id, samling, dokument, felt, markør, database og JSON.
  • 🇧🇷 Hvorfor bruge det: Ad hoc-forespørgsler, indeksering, replikering og sharding for skalering.
  • 🔄 Vs. RDBMS: Samlinger erstatter tabeller, og integrerede dokumenter erstatter joinforbindelser.

Hvad er MongoDB

Hvad er MongoDB?

MongoDB er en dokumentorienteret NoSQL-database, der bruges til datalagring i store mængder. I stedet for at bruge tabeller og rækker som i de traditionelle relationsdatabaser, MongoDB gør brug af samlinger og dokumenter. Dokumenter består af nøgleværdi-par, som er den grundlæggende enhed af data i MongoDBSamlinger indeholder sæt af dokumenter og funktioner, hvilket svarer til relationelle databasetabeller. MongoDB er en database, som kom frem i lyset omkring midten af ​​2000'erne.

MongoDB Funktionalitet

  1. Hver database indeholder samlinger, som igen indeholder dokumenter. Hvert dokument kan være forskelligt med et varierende antal felter. Størrelsen og indholdet af hvert dokument kan være forskelligt fra hinanden.
  2. Dokumentstrukturen er mere i overensstemmelse med, hvordan udviklere konstruerer deres klasser og objekter i deres respektive programmeringssprog. Udviklere vil ofte sige, at deres klasser ikke er rækker og kolonner, men har en klar struktur med nøgleværdi-par.
  3. Rækkerne (eller dokumenter som kaldet ind MongoDB) behøver ikke at have et skema defineret på forhånd. I stedet kan felterne oprettes på stedet.
  4. Datamodellen tilgængelig indenfor MongoDB giver dig mulighed for at repræsentere hierarkiske relationer, gemme arrays og lettere gemme andre mere komplekse strukturer.
  5. Skalerbarhed - Den MongoDB Miljøer er meget skalerbare. Virksomheder over hele verden har definerede klynger, hvoraf nogle kører over 100 noder med omkring millioner af dokumenter i databasen.

MongoDB Eksempel

Nedenstående eksempel viser, hvordan et dokument kan modelleres ind MongoDB.

  1. Feltet _id tilføjes af MongoDB for entydigt at identificere dokumentet i samlingen.
  2. Det, du kan bemærke, er, at ordredataene (OrderID, Produkt og Antal), som i RDBMS normalt gemmes i en separat tabel, faktisk gemmes som et integreret dokument i selve samlingen i MongoDBDette er en af ​​de vigtigste forskelle i, hvordan data modelleres i MongoDB.

MongoDB Eksempel

Nøglekomponenter af MongoDB Architecture

Nedenfor er et par af de almindelige udtryk, der bruges i MongoDB:

  1. _id – Dette er et felt, der kræves i hver MongoDB dokument. Feltet _id repræsenterer en unik værdi i MongoDB dokument. Feltet _id er ligesom dokumentets primære nøgle. Hvis du opretter et nyt dokument uden et _id-felt, MongoDB vil automatisk oprette feltet. Så hvis vi for eksempel ser eksemplet med ovenstående kundetabel, MongoDB vil tilføje et 24-cifret unikt id til hvert dokument i samlingen.
_Id Kunde ID Kundenavn Ordre ID
563479cc8a8a4246bd27d784 11 Guru99 111
563479cc7a8a4246bd47d784 22 Trevor Smith 222
563479cc9a8a4246bd57d784 33 Nicole 333
  1. Kollektion – Dette er en gruppeping of MongoDB dokumenter. En samling er det samme som en tabel, der oprettes i et hvilket som helst andet RDBMS, f.eks. Oracle eller MS SQL. En samling findes i en enkelt database. Som det fremgår af introduktionen, håndhæver samlinger ikke nogen form for struktur.
  2. Cursor – Dette er en pegepind til resultatet af en forespørgsel. Klienter kan iterere gennem en markør for at hente resultater.
  3. Database – Dette er en container til samlinger, ligesom i RDBMS, hvor det er en container til tabeller. Hver database får sit eget sæt filer på filsystemet. MongoDB server kan gemme flere databaser.
  4. Dokument – En rekord i en MongoDB En samling kaldes grundlæggende et dokument. Dokumentet vil til gengæld bestå af feltnavne og værdier.
  5. Felt – Et navn-værdi-par i et dokument. Et dokument har nul eller flere felter. Felter er analoge med kolonner i relationsdatabaser. Følgende diagram viser et eksempel på felter med nøgle-værdi-par. I eksemplet nedenfor er CustomerID og 11 et af de nøgle-værdi-par, der er defineret i dokumentet.

Nøglekomponenter af MongoDB Architecture

  1. JSON – Dette er kendt som JavaScript Objektnotation. Dette er et almindeligt tekstformat, der kan læses af mennesker, til at udtrykke strukturerede data. JSON er i øjeblikket understøttet i mange programmeringssprog.

Bare en hurtig note om nøgleforskellen mellem _id-feltet og et normalt indsamlingsfelt. Feltet _id bruges til entydigt at identificere dokumenterne i en samling og tilføjes automatisk af MongoDB når samlingen er oprettet.

Hvorfor brug MongoDB?

Nedenfor er et par af grundene til, hvorfor man bør begynde at bruge MongoDB:

  1. Dokumentorienteret - Siden MongoDB er en NoSQL type database, i stedet for at have data i et relationelt typeformat, gemmer den dataene i dokumenter. Dette gør MongoDB meget fleksibel og tilpasningsdygtig til den virkelige forretningsverden og -situationer.
  2. Ad hoc forespørgsler - MongoDB understøtter søgning efter felt, områdeforespørgsler og regulære udtrykssøgninger. Forespørgsler kan stilles for at returnere specifikke felter i dokumenter.
  3. Indeksering – Indekser kan oprettes for at forbedre søgeresultaternes ydeevne inden for MongoDB. Ethvert felt i en MongoDB dokument kan indekseres.
  4. Replication - MongoDB kan give høj tilgængelighed med replikasæt. Et replikasæt består af to eller flere MongoDB instanser. Hvert medlem af replikasættet kan til enhver tid fungere som den primære eller sekundære replika. Den primære replika er hovedserveren, der interagerer med klienten og udfører alle læse-/skriveoperationer. De sekundære replikaer opretholder en kopi af dataene fra den primære server ved hjælp af indbygget replikering. Når en primær replika fejler, skifter replikasættet automatisk til den sekundære server, og derefter bliver den den primære server.
  5. Lastbalancering - MongoDB bruger konceptet sharding til at skalere horisontalt ved at opdele data på tværs af flere MongoDB forekomster. MongoDB kan køre over flere servere, balancere belastningen og/eller duplikere data for at holde systemet oppe og køre i tilfælde af hardwarefejl.

Datamodellering i MongoDB

Som vi har set fra introduktionsafsnittet, er dataene i MongoDB har et fleksibelt skema. I modsætning til i SQL databaser, hvor du skal have en tabels skema erklæret, før du indsætter data, MongoDB's samlinger håndhæver ikke dokumentstruktur. Denne form for fleksibilitet er det, der gør MongoDB så stærk.

Når man modellerer data i MongoDB, husk følgende:

  1. Hvad er applikationens behov – Se på applikationens forretningsbehov, og se hvilke data og datatyper der er nødvendige for applikationen. Baseret på dette skal du sørge for, at dokumentets struktur besluttes i overensstemmelse hermed.
  2. Hvad er datahentningsmønstrene – Hvis du forudser stor brug af forespørgsler, bør du overveje at bruge indekser i din datamodel for at forbedre effektiviteten af ​​forespørgsler.
  3. Sker der hyppige indsættelser, opdateringer og fjernelser i databasen? Genovervej brugen af ​​indekser eller inkorporer sharding, hvis det er nødvendigt, i dit datamodelleringsdesign for at forbedre effektiviteten af ​​din samlede MongoDB miljø.

Forskel mellem MongoDB & RDBMS

Nedenfor er nogle af de vigtigste udtryksforskelle mellem MongoDB og RDBMS:

RDBMS MongoDB Forskel
Bordlampe Kollektion In RDBMSindeholder tabellen de kolonner og rækker, der bruges til at gemme dataene, hvorimod i MongoDB Den samme struktur er kendt som en samling. Samlingen indeholder dokumenter, som igen indeholder felter, som igen er nøgle-værdi-par.
Række Dokument I RDBMS repræsenterer rækken et enkelt, implicit struktureret dataelement i en tabel. I MongoDB, dataene gemmes i dokumenter.
Kolonne Felt I RDBMS angiver kolonnen et sæt dataværdier. Disse i MongoDB er kendt som marker.
Sammenføjninger Indlejrede dokumenter I RDBMS er data nogle gange spredt ud over forskellige tabeller, og for at vise en komplet visning af alle data dannes der nogle gange en join på tværs af tabeller for at hente dataene. MongoDB, dataene gemmes normalt i en enkelt samling, men adskilles ved hjælp af integrerede dokumenter. Så der er intet koncept med joins i MongoDB.

Udover forskellene i termer er der vist et par andre forskelle nedenfor:

  1. Relationelle databaser er kendt for at håndhæve dataintegritet. Dette er ikke et eksplicit krav i MongoDB.
  2. RDBMS kræver, at data er normaliseret først for at forhindre forældreløse poster og dubletter. Normalisering af data kræver derefter flere tabeller, hvilket resulterer i flere tabeljoins, hvilket kræver flere nøgler og indeks. Efterhånden som databaser begynder at vokse, kan ydeevnen blive et problem. Igen er dette ikke et eksplicit krav i MongoDB. MongoDB er fleksibel og behøver ikke at dataene skal normaliseres først.

Ofte Stillede Spørgsmål

MongoDB lagrer store mængder ustruktureret og semistruktureret data, hvilket gør det nyttigt til AI- og ML-pipelines. Dets fleksible dokumenter indeholder træningsdata, funktionssæt og modelmetadata, og Atlas tilføjer vektorsøgning til AI-apps.

Ja. MongoDB Atlas Vector Search giver dig mulighed for at gemme og forespørge på vektorindlejringer sammen med dine dokumenter. Dette understøtter semantisk søgning, anbefalinger og generering med udvidet hentning til AI-applikationer uden en separat vektordatabase.

MongoDB Community Edition er gratis og open source. MongoDB tilbyder også Atlas, en administreret cloudtjeneste med et gratis niveau, og Enterprise Edition med avanceret sikkerhed og support mod et gebyr.

Mange store organisationer bruger MongoDB til fleksibel datalagring i store mængder, herunder virksomheder inden for e-handel, spil, IoT og indholdsstyring. Dens skalerbarhed gennem sharding og replikering passer til applikationer med millioner af dokumenter.

Opsummer dette indlæg med: