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

Hvad er MongoDB, og hvordan virker det?

MongoDB er den mest almindelige og udbredte NoSQL-database. Det er en open source dokumentorienteret DB. NoSQL bruges til at henvise til 'ikke-relationel'. Dette betyder, at MongoDB-databasen ikke er baseret på tabelrelationer som RDBMS, da den giver en særskilt lagrings- og datahentningsmekanisme.

Lagerformatet, der anvendes af MongoDB, omtales som BSON. Databasen vedligeholdes af MongoDB Inc. og er licenseret under Server-Side Public License (SSPL).

Nedenfor er en simpel MongoDB dokumentstruktur:

{
  title: 'FossLinux',
  by: 'Abraham',
  url: 'https://www.fosslinux.com',
  type: 'NoSQL'
}

Hvordan virker det?

MongoDB fungerer i to lag, nemlig:

  • Datalag
  • Applikationslag

Applikationslaget omtales almindeligvis som et Final Abstraction Layer. Den indeholder to dele:backend, serverdelen og frontenden brugergrænsefladeafsnittet. Frontend-sektionen er det synlige sted, hvor udvikleren ved hjælp af MongoDB interagerer med mobilen eller nettet. Backend-sektionen inkluderer den server, der primært bruges til at udføre logik på serversiden. Desuden indeholder serversektionen drivere og mongo-skallen, der hjælper MongoDB-serverens interaktion ved hjælp af forespørgsler.

Forespørgsler sendes til den server, der er placeret i datalaget. MongoDB-serveren modtager og sender derefter forespørgslerne til lagermotoren, hvor læse- og skriveoperationer på de tilsvarende datafiler udføres. Det primære formål med storage-motoren er at administrere data.

Bemærk: MongoDB-serveren udfører ikke skrive- og læseoperationer.

Billedet nedenfor illustrerer, hvordan MongoDB fungerer:

Hovedfunktioner i MongoDB

Dens vigtigste funktioner omfatter:

1. Indeksering

Indekser er beregnet til at forbedre databasens søgeydelse og hastighed. Felter i denne databases dokument kan indekseres med primært og sekundært indeks/indeks. Uden indeksering skal hvert dokument i en database scannes for at vælge dem, der matcher forespørgslen, hvilket nogle gange har en tendens til at være ineffektivt. Derfor skal indeksering være til stede for effektiv dokumentsøgning, og MongoDB bruger den til at behandle store dataområder kortfattet.

MongoDB giver sine brugere mulighed for at indeksere ethvert felt, der er blevet indekseret med både det sekundære og det primære indeks. Dette gør forespørgselssøgninger meget hurtigere, hvilket forbedrer den overordnede ydeevne.

2. Belastningsbalancering

MongoDB duplikerer data for at holde systemet oppe og køre, selv i tilfælde af hardwarefejl. Derudover gør denne proces det muligt for MongoDB at køre over flere servere og dermed balancere belastningen.

3. Ad hoc-forespørgsler

MongoDB understøtter jævnligt felt-, områdeforespørgsels- og udtrykssøgninger. Disse forespørgsler returnerer specifikke felter af dokumenter, og de inkluderer også brugerdefinerede JavaScript-funktioner. Forespørgslerne kan også konfigureres til at returnere et tilfældigt udsnit af resultater af en given størrelse.

4. Replikering

Replikasæt, som MongoDB leverer, består af to eller flere kopier af data. Disse sæt kan til enhver tid fungere som primære eller sekundære replikaer. De primære replikasæt udfører læsning og skrivning, mens de sekundære sæt vedligeholder en kopi af dataene for den primære replika ved hjælp af indbygget replikering. Hvis den primære replika fejler, udfører replikasættet automatisk en valgproces for at bestemme, hvilken sekundær der skal blive den primære. Sekundære replikaer kan levere læseoperationer valgfrit, men dataene er til sidst konsistente som standard.

5. Fillagring

Denne database afslører funktioner til filmanipulation og indhold for udviklere. Mongo DB kan bruges som et filsystem kendt som Grid-filsystem (GridFS). Denne funktion opdeler en fil i dele og gemmer hver del som et separat dokument.

6. Aggregation

For effektiv brugervenlighed leverer MongoDB aggregeringsrammen. Denne funktion giver udviklere mulighed for at batche procesdataene og få et enkelt resultat, selv efter at have udført forskellige operationer på gruppedataene. Der er tre måder, hvorpå MongoDB leverer aggregeringsrammen:

  • Map-reducer funktion
  • Aggregation pipeline
  • Enkeltformålssammenlægning.

Tjek billedet nedenfor for at få et glimt af, hvordan aggregering fungerer i MongoDB:

7. Skema-mindre database

Den skemaløse funktion giver MongoDB meget mere fleksibilitet. En samling kan indeholde forskellige dokumenter i MongoDB. Det faktum, at det ikke har noget skema, giver det mulighed for at gemme separate dokumenter med andet indhold, felter og størrelser i samme samling.

8. GridFS

Dette er en funktion, der bruges til at gemme og hente filer i MongoDB. Det opdeler et dokument i flere dele kendt som chunks og opbevarer dem derefter i forskellige dokumenter. Alle chunks undtagen den sidste chunk har en standardlagerstørrelse på omkring 255KB. GridFS er meget nyttigt til filer på mere end 16MB.

Bemærk: Når GridFS forespørges efter en fil, samler den alle de separate bidder, der kræves for at danne den originale fil. Nedenfor er en forenklet GridFS arbejdsmetode:

MongoDB-komponenter

Kerne MongoDB-komponenter og deres brug inkluderer:

  1. Samlinger – De er et sæt MongoDB-dokumenter. Deres RDBMS-modstykker er tabeller. Det er vigtigt at forstå, at samlinger ikke håndhæver nogen struktur. En samling findes altid i en enkelt DB.
  2. Dokument – Dette er en samling af data, der er gemt i BSON-format. Dens RDBMS-modstykke er Row. Optegnelser i MongoDB er kendt som dokumenter. Dokumenterne i MongoDB indeholder feltnavne og deres tilsvarende værdier.
  3. Felt – Dette er et enkelt element i et MongoDB-dokument, der indeholder værdier som felter og værdipar. I relationelle databaser er felter analoge med kolonner. Et felt kan i enkle vendinger omtales som et navn-værdi-par i et dokument.
  4. _id – Hvert MongoDB-dokument kræver dette felt. Feltet _id kan sidestilles med den primære nøgle i relationelle databaser. Det repræsenterer en unik instans eller værdi i et MongoDB-dokument. Hvis du med vilje opretter et dokument i MongoDB uden _id-feltet, vil det automatisk blive genereret.
  5. Markør – Dette er en pointer, der angiver det indstillede resultat af en forespørgsel. Ved hjælp af markøren kan klienter hente resultater.
  6. JSON – Dette er en JavaScript-notation. Det er almindelig tekst, et format, der kan læses af mennesker, der bruges til at udtrykke strukturerede data. Tusindvis af programmeringssprog understøtter JSON.
  7. Database – Ligesom i RDBMS, hvor en database er en tabelbeholder, i MongoDB er en database en samlingsbeholder. Hver database indeholder sine egne filsæt på filsystemet. Derfor kan MongoDB-servere gemme mere end én database.

MongoDB-udgaver

MongoDB er blevet udgivet i forskellige udgaver, som er;

  • MongoDB Community-server –  Dette er en open source-version af MongoDB, der er frit tilgængelig for Linux-, Windows- og macOS-brugere.
  • MongoDB Enterprise-server –  Dette er den kommercielle version af MongoDB og kan findes som en del af MongoDB Enterprise Advanced-abonnementspakken.
  • MongoDB Atlas – Almindeligvis omtalt som MongoDB Cloud. MongoDB Atlas er en on-demand MongoDB-pakke, der udelukkende kører og administreres på Microsoft Azure-, Google Cloud- og AWS-platformene. Det er en MongoDB Enterprise-version, der hostes i skyen. Atlas-udgaven indeholder alle MongoDB Enterprise-serverfunktionerne og meget mere. Dette indebærer derfor, at MongoDB Atlas er meget mere avanceret end alle de andre MongoDB-udgaver.

Hvorfor skal man bruge MongoDB?

  1. En relationsdatabase indeholder strukturerede data, men hvad med ustrukturerede data? Brugeren kan stadig tilføje forskellige former for tilfældige data til MongoDB uden selv at angive deres typer.
  2. Brugeren kan indlæse massive mængder data med en indbygget sharding-metode, som adskiller dataene og bekvemt spreder dem på tværs af adskillige servere, takket være MongoDBs tilgængelighed og fleksibilitet i et skybaseret miljø.
  3. MongoDBs dynamiske skema giver brugerne mulighed for at eksperimentere og lære nye ting hurtigt. Alt kan indarbejdes i MongoDB hurtigt og billigt.
  4. Det gør det nemt at indsamle lokationsbaserede data uden at kræve sofistikerede procedurer.
  5. Millioner af sammenkædede enheder genererer regelmæssigt data på internettet, hvilket gør det vanskeligt at udtrække og behandle dem, men MongoDB kan gøre det i en enkelt database.
  6. MongoDB kan indeholde en bred vifte af data fra flere kilder for at drive et CMS-baseret websted. Disse oplysninger omfatter tweets, kommentarer, multimediebeskeder og andre typer information.
  7. Det er en fremragende ledsager til udvikling af mobilapps.
  8. Det kan forsyne brugerne med klientanalyse i realtid, hvilket giver en tiltrængt tilpasset oplevelse.
  9. Det er en billig database. Hvis du er en mikrovirksomhed eller en lille virksomhed, er MongoDB en bedre opbevaringsmulighed, fordi den er nem at administrere og konfigurere.
  10. Den kraftfulde søgemaskine i MongoDB vil lade brugeren vide, hvor dataene kommer fra.

Fordele og ulemper ved MongoDB

Fordele

  1. MongoDB er langt bedre end relationelle databaser, hvis man har en betydelig mængde data og ønsker at sprede dem på tværs af adskillige servere til belastningsbalancering.
  2. Søgeforespørgsler i MongoDB er hurtigere, da de skal tolkes til en enkelt server for at få adgang.
  3. Det tilbyder alsidighed, hvilket indebærer, at de bør bruge MongoDB til at gemme ustrukturerede data, fordi det er en meget nemmere måde at gøre det på.

Ulempe

  1. I MongoDB er der ingen måde at kombinere tabeller på; derfor bliver man nødt til at gøre det manuelt, hver gang han skal bruge denne funktion, hvilket resulterer i uskøn og tidskrævende kodning.
  2. Den bruger meget hukommelse, da den skal gemme nøglen for hvert dokument, fordi modstridende data er en mulighed.
  3. Når du begynder at bruge en funktion, låser den hele databasen, hvilket forårsager et samtidighedsproblem.
  4. Det gør det ikke automatisk; derfor skal brugeren manuelt sikre, at handlingen er en transaktion.

Top 10 MongoDB FAQ

Dette afsnit vil give svar på nogle af de ofte stillede MongoDB-spørgsmål. Du kan tjekke det ud, da de fleste af de almindelige spørgsmål allerede er blevet besvaret, og du kan være heldig at finde en løsning på dit problem her.

1. Hvordan kan jeg lære MongoDB?

Den nemmeste og mest almindelige måde at lære MongoDB på er gennem de online træningskurser, som MongoDB tilbyder udviklere. Kurserne er udviklet og instrueret af MongoDB ekspertingeniører, som er godt fortrolige med MongoDB. Kurserne er gratis, og de dækker alle aspekter, du behøver at vide for at være en MongoDB-guru. De fleste eksperter har lært at bruge denne metode.

Derfor vil du ikke være en fremragende undtagelse, hvis du følger trop. Onlinekurserne giver applikationer fra den virkelige verden, der hjælper brugerne med at forstå mere om dette emne. Onlineuddannelsen foregår i eget tempo, hvilket betyder, at du bestemmer, hvor lang tid det vil tage at lære dem. Desuden er kurserne yderligere øvelser, der hjælper nybegyndere med at lære og træne mere på MongoDB. Besøg MongoDB University for at få et væld af gratis kurser og lære MongoDB.

2. Er MongoDB-serveren gratis at bruge?

Ja. MongoDB server er gratis at bruge afhængigt af den pakke du vælger at bruge. For eksempel er fællesskabsserveren tilgængelig for alle brugere. Men hvis du er ude efter flere funktioner, kan du bruge en betalt version, såsom MongoDB Enterprise eller Atlas-udgaven.

3. Forklar forskellene mellem MongoDB og relationelle databaser?

De fleste relationelle databaser som MySQL, Oracle, SQL Server og Postgres er bygget på arkitekturer, der oprindeligt er designet for længe siden (mere end 40 år). Ansøgningskravene i den periode var anderledes sammenlignet med de moderne applikationskrav.

MongoDB er bygget på distribueret systemarkitektur, i modsætning til relationelle databaser, hvilket giver brugerne mulighed for hurtigt at skalere deres databaser på tværs af forskellige instanser. for dybdegående analyse, tjek forskellene mellem MongoDB og MySQL (en relationel database.) Det primære formål med at designe MongoDB var at øge produktiviteten. Skema-fleksibilitet er, hvad de fleste brugere søgte efter, og det er en af ​​de fantastiske funktioner, som MongoDB tilbyder.

4. Hvordan kan man få en MongoDB kommerciel licens?

For at få en MongoDB kommerciel licens, kan du købe den fra MongoDB Enterprise Advanced.

5. Forklar, hvordan data gemmes i MongoDB?

I MongoDB lagres data i BSON-dokumenter, der bruger JSON-formatets datastrukturer. Dokumenter indeholder mere end ét felt, og hvert felt har en specifik datatypeværdi, der inkluderer binære data, arrays og underdokumenter. Dokumenter, der deler lignende strukturer, gemmes og organiseres som samlinger.

6. Hvor kan man køre MongoDB?

Du kan downloade, installere og køre MongoDB hvor som helst. Så længe du fuldfører platformens indlåsningsfrihed, kan du køre MongoDB hvor som helst. For eksempel giver MongoDB Atlas-versionen brugerne en fuldt tilpasset og administreret tjeneste på AWS, Google Cloud og Azure, der fungerer efter pay-as-you-go-princippet. MongoDB Ops Manager er en af ​​de bedste alternative måder at køre MongoDB på din infrastruktur. Dette gør det nemt og hurtigt for teams at overvåge, sikkerhedskopiere, skalere og implementere MongoDB.

7. Forklar, hvorfor MongoDB er nyttig?

MongoDB er bygget op omkring tre hoveddesignprincipper, der giver brugerne mulighed for i fællesskab at bygge hurtigere og højkvalitetsapplikationer. De tre kernedesignprincipper er:

Distribueret systemdesign giver brugerne mulighed for intelligent at allokere data, hvor de vil.
Ensartet oplevelse – giver brugerne frihed til at løbe hvor som helst. Dette kernedesignprincip tillader eliminering af leverandørlåsning, samtidig med at brugerne kan fremtidssikre deres applikationer.
Dokumentdatamodel – Denne funktion giver brugerne den bedste og enkle måde at arbejde med data på.

8. Hvornår skal man bruge MongoDB?

MongoDB er en alsidig NoSQL-database, der kan bruges på tværs af analytiske apps og en række andre OLTP-apps. En bred vifte af applikationer kan adresseres med MongoDB Atlas og MongoDB Server.

9. Forklar, hvordan MongoDB sikrer klienternes data?

MongoDB indeholder omfattende funktioner, der sikrer, registrerer, kontrollerer og forsvarer klientdata. Nedenfor er nogle af de nøglefunktioner, der hjælper med at sikre klientens data:

Godkendelse –
RBAC (Role-based Access Control) giver brugerne mulighed for at konfigurere de granulære tilladelser, der tillader brugere eller applikationsbaserede privilegier, der er nødvendige for at udføre deres opgaver.

Revision er afgørende for overholdelse af lovgivningen, da det giver sikkerhedsadministratorer mulighed for at bruge MongoDBs indbyggede revisionslog til at registrere de givne databaseændringer og -aktiviteter.

Godkendelse – MongoDB tilbyder en levedygtig, udfordringssvar solid mekanisme, der forenkler databaseadgangskontrol baseret på SCRAM-256 sammen med den integrerede virksomhedssikkerhedsinfrastrukturintroduktion. Nogle af de funktioner, du får, er også Windows Active Directory, x.509-certifikater, LDAP og Kerberos.

Kryptering overalt – Mens de er i bevægelse, kan MongoDB-data krypteres på tværs af netværkene, og mens de er i hvile, kan dataene krypteres på diske eller sikkerhedskopier. Endelig kan MongoDB-dataene krypteres i databasen, mens de er i brug.

Konklusion

Denne artikel har omfattende dækket alle aspekter, man behøver at vide om MongoDB. Gennem tiden har brugerne været ude efter hurtig produktivitet, som MongoDB tilbyder sine brugere. I modsætning til relationelle databaser, som allerede nævnt i artiklen, giver MongoDB sine brugere plads til hurtigt at skalere deres databaser ud.


  1. Hvad er de underliggende datastrukturer, der bruges til Redis?

  2. MongoDB, udførelse af forespørgsel ved regulært udtryk på indekserede felter

  3. 3 enkle trin til at oprette MongoDB Sharded Clusters

  4. Redis datastruktur pladskrav