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: