sql >> Databasteknik >  >> NoSQL >> MongoDB

Vad är MongoDB och hur fungerar det?

MongoDB är den vanligaste och mest använda NoSQL-databasen. Det är en öppen källkodsdokumentorienterad DB. NoSQL används för att referera till "icke-relationell". Detta betyder att MongoDB-databasen inte är baserad på tabellrelationer som RDBMS eftersom den tillhandahåller en distinkt lagrings- och datahämtningsmekanism.

Lagringsformatet som används av MongoDB kallas BSON. Databasen underhålls av MongoDB Inc. och är licensierad under Server-Side Public License (SSPL).

Nedan är en enkel MongoDB-dokumentstruktur:

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

Hur fungerar det?

MongoDB fungerar i två lager, nämligen:

  • Datalager
  • Applikationslager

Applikationsskiktet kallas vanligtvis för ett slutligt abstraktionsskikt. Den innehåller två delar:backend, serverdelen och gränssnittet användargränssnittet. Frontend-sektionen är den synliga platsen där utvecklaren, med hjälp av MongoDB, interagerar med mobilen eller webben. Backend-sektionen inkluderar servern som främst används för att utföra logik på serversidan. Dessutom innehåller serverdelen drivrutiner och mongo-skalet som hjälper till att interagera med MongoDB-servern med hjälp av frågor.

Förfrågningar skickas till servern som finns i datalagret. MongoDB-servern tar emot skickar sedan frågorna till lagringsmotorn, där läs- och skrivoperationer på motsvarande datafiler utförs. Det primära syftet med lagringsmotorn är att hantera data.

Obs! MongoDB-servern utför inte skriv- och läsoperationer.

Bilden nedan illustrerar hur MongoDB fungerar:

Huvudfunktioner i MongoDB

Dess huvudsakliga funktioner inkluderar:

1. Indexering

Index är avsedda att förbättra databasens sökprestanda och hastighet. Fält i denna databas dokument kan indexeras med primära och sekundära index/index. Utan indexering måste varje dokument i en databas skannas för att välja de som matchar frågan, vilket ibland tenderar att vara ineffektivt. Därför måste indexering finnas för effektiv dokumentsökning, och MongoDB använder den för att bearbeta stora dataområden kortfattat.

MongoDB låter sina användare indexera alla fält som har indexerats med både sekundära och primära index. Detta gör frågesökningar mycket snabbare, vilket förbättrar den övergripande prestandan.

2. Lastbalansering

MongoDB duplicerar data för att hålla systemet igång även i fall av hårdvarufel. Dessutom gör denna process det möjligt för MongoDB att köra över flera servrar och därmed balansera belastningen.

3. Ad hoc-frågor

MongoDB stöder regelbundet sökningar av fält, intervallfrågor och uttryck. Dessa frågor returnerar specifika dokumentfält och de inkluderar även användardefinierade JavaScript-funktioner. Frågorna kan också konfigureras för att returnera ett slumpmässigt urval av resultat av en given storlek.

4. Replikering

Replikuppsättningar som MongoDB tillhandahåller består av två eller flera kopior av data. Dessa uppsättningar kan när som helst fungera som primära eller sekundära repliker. De primära replikuppsättningarna utför läsning och skrivning medan de sekundära uppsättningarna behåller en kopia av data från den primära repliken med hjälp av inbyggd replikering. Om den primära repliken misslyckas, utför replikuppsättningen automatiskt en valprocess för att avgöra vilken sekundär som ska bli primär. Sekundära repliker kan betjäna läsoperationer valfritt, men data är så småningom konsekventa som standard.

5. Fillagring

Denna databas exponerar funktioner för filmanipulation och innehåll för utvecklare. Mongo DB kan användas som ett filsystem känt som Grid-filsystem (GridFS). Denna funktion delar upp en fil i delar och lagrar varje del som ett separat dokument.

6. Aggregation

För effektiv användbarhet tillhandahåller MongoDB aggregeringsramverket. Denna funktion tillåter utvecklare att batcha processdata och få ett enda resultat även efter att ha utfört olika operationer på gruppdata. Det finns tre sätt på vilka MongoDB tillhandahåller aggregeringsramverket:

  • Funktionen för att minska kartan
  • Aggregationspipeline
  • Aggregering för enstaka ändamål.

Kolla bilden nedan för att få en glimt av hur aggregering fungerar i MongoDB:

7. Schema-less databas

Den schemalösa funktionen ger MongoDB mycket mer flexibilitet. En samling kan innehålla olika dokument i MongoDB. Det faktum att den inte har något schema gör att den kan lagra separata dokument med annat innehåll, fält och storlekar i samma samling.

8. GridFS

Detta är en funktion som används för att lagra och hämta filer i MongoDB. Den delar upp ett dokument i flera delar som kallas chunks och sparar dem sedan i olika dokument. Alla bitar utom den sista biten har en standardlagringsstorlek på cirka 255KB. GridFS är mycket användbart för filer över 16 MB.

Obs! När GridFS frågas efter en fil, sätter den ihop alla separata bitar som krävs för att bilda den ursprungliga filen. Nedan finns en förenklad GridFS-arbetsmetodik:

MongoDB-komponenter

Core MongoDB-komponenter och deras användning inkluderar:

  1. Samlingar – De är en uppsättning MongoDB-dokument. Deras RDBMS-motsvarigheter är tabeller. Det är viktigt att förstå att samlingar inte upprätthåller någon struktur. En samling finns alltid inom en enda DB.
  2. Dokument – Detta är en samling data som lagras i BSON-format. Dess RDBMS-motsvarighet är Row. Poster i MongoDB är kända som dokument. Dokumenten i MongoDB innehåller fältnamn och deras motsvarande värden.
  3. Fält – Detta är ett enda element i ett MongoDB-dokument som innehåller värden som fält och värdepar. I relationsdatabaser är fält analoga med kolumner. Ett fält kan i enkla termer kallas ett namn-värdepar i ett dokument.
  4. _id – Varje MongoDB-dokument kräver detta fält. Fältet _id kan likställas med primärnyckeln i relationsdatabaser. Det representerar en unik instans eller värde i ett MongoDB-dokument. Om du avsiktligt skapar ett dokument i MongoDB utan fältet _id, kommer det att genereras automatiskt.
  5. Markör – Detta är en pekare som indikerar det inställda resultatet av en fråga. Med hjälp av markören kan klienter hämta resultat.
  6. JSON – Detta är en JavaScript-notation. Det är vanlig text, ett läsbart format som används för att uttrycka strukturerad data. Tusentals programmeringsspråk stöder JSON.
  7. Databas – Som i RDBMS, där en databas är en tabellbehållare, i MongoDB är en databas en samlingsbehållare. Varje databas innehåller sina egna filuppsättningar i filsystemet. Därför kan MongoDB-servrar lagra mer än en databas.

MongoDB Editions

MongoDB har släppts i olika upplagor, som är;

  • MongoDB Community-server –  Detta är en öppen källkodsversion av MongoDB som är fritt tillgänglig för Linux-, Windows- och macOS-användare.
  • MongoDB Enterprise-server –  Detta är den kommersiella versionen av MongoDB och kan hittas som en del av MongoDB Enterprise Advanced-prenumerationspaketet.
  • MongoDB Atlas – Kallas vanligtvis MongoDB Cloud. MongoDB Atlas är ett on-demand MongoDB-paket som helt körs och hanteras på Microsoft Azure, Google Cloud och AWS-plattformarna. Det är en MongoDB Enterprise-version som är värd i molnet. Atlas-utgåvan innehåller alla MongoDB Enterprise-serverfunktioner och mycket mer. Detta innebär därför att MongoDB Atlas är mycket mer avancerad än alla andra MongoDB-utgåvor.

Varför ska man använda MongoDB?

  1. En relationsdatabas innehåller strukturerad data, men hur är det med ostrukturerad data? Användaren kan fortfarande lägga till olika former av slumpmässig data till MongoDB utan att ens deklarera deras typer.
  2. Användaren kan ladda massiva volymdata med en inbyggd skärningsmetod, som separerar data och bekvämt sprider dem över flera servrar, tack vare MongoDB:s tillgänglighet och flexibilitet i en molnbaserad miljö.
  3. MongoDB:s dynamiska schema låter användare experimentera och lära sig nya saker snabbt. Allt kan införlivas i MongoDB snabbt och billigt.
  4. Det gör det enkelt att samla in platsbaserad data utan att kräva sofistikerade procedurer.
  5. Miljontals länkade enheter genererar regelbundet data på Internet, vilket gör det svårt att extrahera och bearbeta det, men MongoDB kan göra det inom en enda databas.
  6. MongoDB kan innehålla ett brett utbud av data från flera källor för att driva en CMS-baserad webbplats. Denna information inkluderar tweets, kommentarer, multimediameddelanden och andra typer av information.
  7. Den är en utmärkt följeslagare för utveckling av mobilappar.
  8. Det kan förse användare med klientanalys i realtid, vilket ger en välbehövlig anpassad upplevelse.
  9. Det är en lågkostnadsdatabas. Om du är ett mikroföretag eller ett litet företag är MongoDB ett bättre lagringsalternativ eftersom det är lätt att administrera och konfigurera.
  10. Den kraftfulla sökmotorn i MongoDB låter användaren veta varifrån data kommer.

För- och nackdelar med MongoDB

Fördelar

  1. MongoDB är vida överlägsen relationsdatabaser om man har en betydande mängd data och vill sprida den över flera servrar för lastbalansering.
  2. Sökfrågor i MongoDB är snabbare eftersom de måste tolkas till en enda server för åtkomst.
  3. Det erbjuder mångsidighet, vilket innebär att de bör använda MongoDB för att lagra ostrukturerad data eftersom det är ett mycket enklare sätt att göra det.

Nackdelar

  1. I MongoDB finns det inget sätt att kombinera tabeller; Därför måste man göra det manuellt varje gång man behöver använda den här funktionen, vilket resulterar i ful och tidskrävande kodning.
  2. Den använder mycket minne eftersom den måste lagra nyckeln för varje dokument eftersom motstridiga data är en möjlighet.
  3. När du börjar använda en funktion låser den hela databasen, vilket orsakar ett samtidighetsproblem.
  4. Det gör det inte automatiskt; därför måste användaren manuellt säkerställa att operationen är en transaktion.

Top 10 MongoDB FAQ

Det här avsnittet kommer att ge svar på några av de vanligaste MongoDB-frågorna. Du kan kolla upp det eftersom de flesta vanliga frågorna redan har besvarats, och du kanske har turen att hitta en lösning på ditt problem här.

1. Hur kan jag lära mig MongoDB?

Det enklaste och vanligaste sättet att lära sig MongoDB är genom onlinekurserna som tillhandahålls av MongoDB för utvecklare. Kurserna är utvecklade och instruerade av MongoDB expertingenjörer som är väl insatta i MongoDB. Kurserna är gratis och de täcker alla aspekter du behöver veta för att vara en MongoDB-guru. De flesta experter har lärt sig att använda denna metod.

Därför kommer du inte att vara ett utmärkt undantag om du följer efter. Onlinekurserna tillhandahåller verkliga applikationer som hjälper användare att förstå mer om detta ämne. Onlineutbildningen är i egen takt, vilket innebär att du bestämmer hur lång tid det kommer att ta att lära sig dem. Dessutom är kurserna ytterligare övningar som hjälper nybörjare att lära sig och träna mer på MongoDB. Besök MongoDB University för att få massor av gratiskurser och lära dig MongoDB.

2. Är MongoDB Server gratis att använda?

Ja. MongoDB-servern är gratis att använda beroende på vilket paket du väljer att använda. Till exempel är communityservern tillgänglig för alla användare. Men om du är ute efter fler funktioner kan du använda en betalversion som MongoDB Enterprise eller Atlas edition.

3. Förklara skillnaderna mellan MongoDB och relationsdatabaser?

De flesta relationsdatabaser som MySQL, Oracle, SQL Server och Postgres är byggda på arkitekturer som ursprungligen designades för länge sedan (mer än 40 år). Ansökningskraven under den tiden var annorlunda jämfört med dagens applikationskrav.

MongoDB är byggd på distribuerad systemarkitektur, till skillnad från relationsdatabaser, vilket gör att användare snabbt kan skala ut sina databaser över olika instanser. för en djupgående analys, kolla in skillnaderna mellan MongoDB och MySQL (en relationsdatabas.) Det primära syftet med att designa MongoDB var att öka produktiviteten. Schemaflexibilitet är vad de flesta användare letade efter, och det är en av de fantastiska funktionerna som erbjuds av MongoDB.

4. Hur kan man få en MongoDB kommersiell licens?

För att få en MongoDB kommersiell licens kan du köpa den från MongoDB Enterprise Advanced.

5. Förklara hur data lagras i MongoDB?

I MongoDB lagras data i BSON-dokument som använder JSON-formatets datastrukturer. Dokument innehåller mer än ett fält, och varje fält har ett specifikt datatypvärde som inkluderar binära data, matriser och underdokument. Dokument som delar liknande strukturer lagras och organiseras som samlingar.

6. Var kan man köra MongoDB?

Du kan ladda ner, installera och köra MongoDB var som helst. Så länge du slutför plattformens inlåsningsfrihet kan du köra MongoDB var som helst. MongoDB Atlas-versionen förser till exempel användare med en helt anpassad och hanterad tjänst på AWS, Google Cloud och Azure som fungerar enligt principen om att betala när du går. MongoDB Ops Manager är ett av de bästa alternativa sätten att köra MongoDB på din infrastruktur. Detta gör det enkelt och snabbt för team att övervaka, säkerhetskopiera, skala och distribuera MongoDB.

7. Förklara varför MongoDB är användbart?

MongoDB är uppbyggd kring tre huvudsakliga designprinciper som tillåter användare att tillsammans bygga snabbare och högkvalitativa applikationer. De tre centrala designprinciperna är:

Distribuerade systemdesign tillåter användare att fördela data dit de vill på ett intelligent sätt.
Enhetlig upplevelse – ger användarna friheten att springa var som helst. Denna grundläggande designprincip tillåter eliminering av leverantörslåsning samtidigt som användarna kan framtidssäkra sina applikationer.
Dokumentdatamodell – Den här funktionen ger användarna det bästa och enkla sättet att arbeta med data.

8. När ska man använda MongoDB?

MongoDB är en mångsidig NoSQL-databas som kan användas över analytiska appar och en rad andra OLTP-appar. Ett brett utbud av applikationer kan adresseras med MongoDB Atlas och MongoDB Server.

9. Förklara hur MongoDB säkrar klienternas data?

MongoDB innehåller omfattande funktioner som säkrar, upptäcker, kontrollerar och försvarar klientdata. Nedan är några av de viktigaste funktionerna som hjälper till att säkra klientens data:

Auktorisering –
RBAC (Role-based Access Control) tillåter användare att konfigurera de detaljerade behörigheterna som möjliggör för användare eller applikationsbaserade behörigheter som behövs för att utföra sina uppgifter.

Revision är avgörande för regelefterlevnad eftersom det tillåter säkerhetsadministratörer att använda MongoDB:s inbyggda revisionslogg för att registrera de givna databasändringarna och aktiviteterna.

Autentisering – MongoDB erbjuder en livskraftig, utmaning-svar solid mekanism som förenklar databasåtkomstkontroll baserad på SCRAM-256 tillsammans med introduktionen av integrerad företagssäkerhetsinfrastruktur. Några av funktionerna du får är också Windows Active Directory, x.509-certifikat, LDAP och Kerberos.

Överallt kryptering – Under rörelse kan MongoDB-data krypteras över nätverken, och i vila kan data krypteras på diskar eller säkerhetskopior. Slutligen kan MongoDB-data krypteras i databasen medan den används.

Slutsats

Den här artikeln har utförligt täckt alla aspekter man behöver veta om MongoDB. Med tiden har användare varit efter snabb produktivitet, som MongoDB erbjuder sina användare. Till skillnad från relationsdatabaser, som redan nämnts i artikeln, ger MongoDB sina användare utrymme att snabbt skala ut sina databaser.


  1. Ta bort alla fält som är null

  2. Meteor returnerar ogiltigt hexadecimalt strängfel vid försök att skapa ObjectID?

  3. Skapar hirdis Redis-biblioteket en egen tråd för asynkrona återuppringningar

  4. Docker:ändra mapp där dockningsvolymer ska lagras