Hva er MongoDB? Architecture, funksjoner og eksempel

โšก Smart oppsummering

MongoDB er en dokumentorientert NoSQL-database som brukes til lagring av store datavolumer, og bruker samlinger og dokumenter i stedet for tabeller og rader. Denne ressursen forklarer MongoDB funksjoner, et dokumenteksempel, viktige arkitekturkomponenter, grunner til รฅ bruke det, datamodellering og hvordan det skiller seg fra en relasjonsdatabase.

  • ๐Ÿ“„ Dokumentmodell: Data lagres som nรธkkelverdidokumenter i samlinger, ikke tabeller.
  • ๐Ÿงฉ Fleksibelt skjema: Felt opprettes pรฅ direkten uten en forhรฅndsdefinert struktur.
  • ๐Ÿ—๏ธ Kjernekomponenter: _id, samling, dokument, felt, markรธr, database og JSON.
  • โš™๏ธ Hvorfor bruke det: Ad hoc-spรธrringer, indeksering, replikering og sharding for skalering.
  • ๐Ÿ”„ Vs RDBMS: Samlinger erstatter tabeller, og innebygde dokumenter erstatter sammenfรธyninger.

Hva er MongoDB

Hva er MongoDB?

MongoDB er en dokumentorientert NoSQL-database som brukes til datalagring med store volum. I stedet for รฅ bruke tabeller og rader som i tradisjonelle relasjonsdatabaser, MongoDB benytter seg av samlinger og dokumenter. Dokumenter bestรฅr av nรธkkel-verdi-par som er den grunnleggende enheten for data i MongoDBSamlinger inneholder sett med dokumenter og funksjoner, som tilsvarer relasjonelle databasetabeller. MongoDB er en database som kom frem rundt midten av 2000-tallet.

MongoDB Funksjoner

  1. Hver database inneholder samlinger som igjen inneholder dokumenter. Hvert dokument kan vรฆre forskjellig, med et varierende antall felt. Stรธrrelsen og innholdet i hvert dokument kan vรฆre forskjellig fra hverandre.
  2. Dokumentstrukturen er mer i trรฅd med hvordan utviklere konstruerer sine klasser og objekter i sine respektive programmeringssprรฅk. Utviklere vil ofte si at klassene deres ikke er rader og kolonner, men har en klar struktur med nรธkkel-verdi-par.
  3. Radene (eller dokumenter som kalt inn MongoDB) trenger ikke รฅ ha et skjema definert pรฅ forhรฅnd. I stedet kan feltene opprettes pรฅ direkten.
  4. Datamodellen tilgjengelig innenfor MongoDB lar deg representere hierarkiske forhold, lagre matriser og lagre andre mer komplekse strukturer enklere.
  5. skalerbarhet - Det MongoDB Miljรธer er svรฆrt skalerbare. Selskaper over hele verden har definerte klynger, og noen av dem kjรธrer over 100 noder med rundt millioner av dokumenter i databasen.

MongoDB Eksempel

Eksempelet nedenfor viser hvordan et dokument kan modelleres inn MongoDB.

  1. _id-feltet er lagt til av MongoDB for รฅ identifisere dokumentet i samlingen unikt.
  2. Det du kan legge merke til er at ordredataene (ordre-ID, produkt og antall), som i RDBMS normalt lagres i en egen tabell, faktisk lagres som et innebygd dokument i selve samlingen i MongoDBDette er en av de viktigste forskjellene i hvordan data modelleres i MongoDB.

MongoDB Eksempel

Nรธkkelkomponenter i MongoDB Architecture

Nedenfor er noen av de vanlige begrepene som brukes i MongoDB:

  1. _id โ€“ Dette er et felt som kreves i hver MongoDB dokument. _id-feltet representerer en unik verdi i MongoDB dokument. _id-feltet er som dokumentets primรฆrnรธkkel. Hvis du oppretter et nytt dokument uten et _id-felt, MongoDB vil automatisk opprette feltet. Sรฅ hvis vi for eksempel ser eksemplet med kundetabellen ovenfor, MongoDB vil legge til en 24-sifret unik identifikator til hvert dokument i samlingen.
_Id Kunde ID Kundenavn Bestillings ID
563479cc8a8a4246bd27d784 11 Guru99 111
563479cc7a8a4246bd47d784 22 Trevor Smith 222
563479cc9a8a4246bd57d784 33 Nicole 333
  1. Samling โ€“ Dette er en gruppeping of MongoDB dokumenter. En samling tilsvarer en tabell som opprettes i et hvilket som helst annet RDBMS, f.eks. Oracle eller MS SQL. En samling finnes i รฉn enkelt database. Som det fremgรฅr av innledningen, hรฅndhever ikke samlinger noen form for struktur.
  2. Markรธr โ€“ Dette er en pekepinn til resultatsettet til en spรธrring. Klienter kan iterere gjennom en markรธr for รฅ hente resultater.
  3. Database โ€“ Dette er en container for samlinger, som i RDBMS hvor det er en container for tabeller. Hver database fรฅr sitt eget sett med filer pรฅ filsystemet. MongoDB server kan lagre flere databaser.
  4. Document โ€“ En rekord i en MongoDB Samlingen kalles i bunn og grunn et dokument. Dokumentet vil igjen bestรฅ av feltnavn og verdier.
  5. Felt โ€“ Et navn-verdi-par i et dokument. Et dokument har null eller flere felt. Felt er analoge med kolonner i relasjonsdatabaser. Diagrammet nedenfor viser et eksempel pรฅ felt med nรธkkel-verdi-par. I eksemplet nedenfor er CustomerID og 11 et av nรธkkel-verdi-parene som er definert i dokumentet.

Nรธkkelkomponenter i MongoDB Architecture

  1. JSON โ€“ Dette er kjent som JavaScript Objektnotasjon. Dette er et lesbart, rent tekstformat for รฅ uttrykke strukturerte data. JSON stรธttes for tiden pรฅ mange programmeringssprรฅk.

Bare en rask merknad om nรธkkelforskjellen mellom _id-feltet og et normalt samlingsfelt. Feltet _id brukes til รฅ identifisere dokumentene i en samling unikt og legges automatisk til av MongoDB nรฅr samlingen er opprettet.

Hvorfor bruk MongoDB?

Nedenfor er noen av grunnene til hvorfor man bรธr begynne รฅ bruke MongoDB:

  1. Dokumentorientert - Siden MongoDB er en NoSQL type database, i stedet for รฅ ha data i et relasjonstypeformat, lagrer den dataene i dokumenter. Dette gjรธr MongoDB svรฆrt fleksibel og tilpasningsdyktig til reelle situasjoner og krav i nรฆringslivet.
  2. Ad hoc-spรธrsmรฅl - MongoDB stรธtter sรธk etter felt, omrรฅdespรธrringer og regulรฆre uttrykkssรธk. Forespรธrsler kan gjรธres for รฅ returnere spesifikke felt i dokumenter.
  3. Indeksering โ€“ Indekser kan opprettes for รฅ forbedre sรธkeytelsen innenfor MongoDB. Ethvert felt i en MongoDB dokumentet kan indekseres.
  4. Replication - MongoDB kan gi hรธy tilgjengelighet med replikasett. Et replikasett bestรฅr av to eller flere MongoDB forekomster. Hvert medlem av replikasettet kan nรฅr som helst fungere i rollen som primรฆr eller sekundรฆr replika. Primรฆrreplikaen er hovedserveren som samhandler med klienten og utfรธrer alle lese-/skriveoperasjoner. De sekundรฆre replikaene opprettholder en kopi av dataene til primรฆrserveren ved hjelp av innebygd replikering. Nรฅr en primรฆrreplika feiler, bytter replikasettet automatisk over til sekundรฆrserveren, og blir deretter primรฆrserveren.
  5. Lastbalansering - MongoDB bruker konseptet sharding for รฅ skalere horisontalt ved รฅ dele data pรฅ flere MongoDB tilfeller. MongoDB kan kjรธre over flere servere, balansere belastningen og/eller duplisere data for รฅ holde systemet i gang i tilfelle maskinvarefeil.

Datamodellering i MongoDB

Som vi har sett fra innledningen, er dataene i MongoDB har et fleksibelt skjema. I motsetning til i SQL databaser, der du mรฅ ha en tabells skjema deklarert fรธr du setter inn data, MongoDBsine samlinger hรฅndhever ikke dokumentstruktur. Denne typen fleksibilitet er det som skaper MongoDB sรฅ kraftig.

Nรฅr man modellerer data i MongoDB, husk fรธlgende:

  1. Hva er behovene til applikasjonen โ€“ Se pรฅ applikasjonens forretningsbehov og se hvilke data og datatyper som trengs for applikasjonen. Basert pรฅ dette, sรธrg for at dokumentstrukturen bestemmes deretter.
  2. Hva er datainnhentingsmรธnstrene โ€“ Hvis du forventer mye bruk av spรธrringer, bรธr du vurdere bruk av indekser i datamodellen din for รฅ forbedre effektiviteten til spรธrringene.
  3. Skjer det hyppige innsettinger, oppdateringer og fjerninger i databasen? Vurder bruken av indekser pรฅ nytt, eller integrer sharding om nรธdvendig i datamodelleringsdesignet ditt for รฅ forbedre effektiviteten til det generelle MongoDB miljรธ.

Forskjell mellom MongoDB & RDBMS

Nedenfor er noen av de viktigste begrepsforskjellene mellom MongoDB og RDBMS:

RDBMS MongoDB Forskjell
Bord Samling In RDBMS, tabellen inneholder kolonnene og radene som brukes til รฅ lagre dataene, mens i MongoDB Den samme strukturen er kjent som en samling. Samlingen inneholder dokumenter som igjen inneholder felt, som igjen er nรธkkel-verdi-par.
Rad Document I RDBMS representerer raden et enkelt, implisitt strukturert dataelement i en tabell. I MongoDB, er dataene lagret i dokumenter.
Kolonne Felt I RDBMS angir kolonnen et sett med dataverdier. Disse i MongoDB er kjent som felt.
tiltrer Innebygde dokumenter I RDBMS er data noen ganger spredt over forskjellige tabeller, og for รฅ vise en fullstendig oversikt over alle dataene, dannes det noen ganger en kobling pรฅ tvers av tabeller for รฅ hente dataene. MongoDB, dataene lagres vanligvis i en enkelt samling, men atskilt ved hjelp av innebygde dokumenter. Sรฅ det er ikke noe konsept med sammenfรธyninger i MongoDB.

Bortsett fra forskjellene i begrepene, vises noen andre forskjeller nedenfor:

  1. Relasjonsdatabaser er kjent for รฅ hรฅndheve dataintegritet. Dette er ikke et eksplisitt krav i MongoDB.
  2. RDBMS krever at data er normalisert fรธrst slik at det kan forhindre foreldrelรธse poster og duplikater. Normalisering av data krever deretter flere tabeller, noe som igjen vil resultere i flere tabellkoblinger, og dermed kreve flere nรธkler og indekser. Etter hvert som databaser begynner รฅ vokse, kan ytelsen bli et problem. Igjen er ikke dette et eksplisitt krav i MongoDB. MongoDB er fleksibel og trenger ikke at dataene skal normaliseres fรธrst.

Spรธrsmรฅl og svar

MongoDB lagrer store mengder ustrukturerte og semistrukturerte data, noe som gjรธr den nyttig for AI- og ML-pipelines. De fleksible dokumentene inneholder treningsdata, funksjonssett og modellmetadata, og Atlas legger til vektorsรธk for AI-apper.

Ja. MongoDB Med Atlas Vector Search kan du lagre og spรธrre etter vektorinnebygginger sammen med dokumentene dine. Dette stรธtter semantisk sรธk, anbefalinger og henteutvidet generering for AI-applikasjoner uten en separat vektordatabase.

MongoDB Community Edition er gratis og รฅpen kildekode. MongoDB tilbyr ogsรฅ Atlas, en administrert skytjeneste med et gratisnivรฅ, og Enterprise Edition med avansert sikkerhet og stรธtte mot et gebyr.

Mange store organisasjoner bruker MongoDB for fleksibel datalagring med store volumer, inkludert selskaper innen e-handel, spill, IoT og innholdsadministrasjon. Skalerbarheten gjennom sharding og replikering passer for applikasjoner med millioner av dokumenter.

Oppsummer dette innlegget med: