Vad är MongoDB? Architecture, Features & Exempel

⚡ Smart sammanfattning

MongoDB är en dokumentorienterad NoSQL-databas som används för lagring av stora datavolymer, med samlingar och dokument istället för tabeller och rader. Denna resurs förklarar MongoDB funktioner, ett dokumentexempel, viktiga arkitekturkomponenter, skäl att använda det, datamodellering och hur det skiljer sig från en relationsdatabas.

  • 📄 Dokumentmodell: Data lagras som nyckel-värde-dokument i samlingar, inte tabeller.
  • 🧩 Flexibelt schema: Fält skapas i realtid utan en fördefinierad struktur.
  • 🏗️ Kärnkomponenter: _id, samling, dokument, fält, markör, databas och JSON.
  • ⚙️ Varför använda det: Ad hoc-frågor, indexering, replikering och sharding för skalning.
  • 🔄 Jämfört med RDBMS: Samlingar ersätter tabeller och inbäddade dokument ersätter kopplingar.

Vad är MongoDB

Vad är MongoDB?

MongoDB är en dokumentorienterad NoSQL-databas som används för datalagring med stora volymer. Istället för att använda tabeller och rader som i de traditionella relationsdatabaserna, MongoDB använder sig av samlingar och dokument. Dokument består av nyckel-värdepar som är den grundläggande enheten för data i MongoDBSamlingar innehåller uppsättningar av dokument och funktioner, vilket motsvarar relationsdatabastabeller. MongoDB är en databas som kom fram i mitten av 2000-talet.

MongoDB Funktioner

  1. Varje databas innehåller samlingar som i sin tur innehåller dokument. Varje dokument kan vara unikt, med ett varierande antal fält. Storleken och innehållet på varje dokument kan skilja sig från varandra.
  2. Dokumentstrukturen är mer i linje med hur utvecklare konstruerar sina klasser och objekt i sina respektive programmeringsspråk. Utvecklare säger ofta att deras klasser inte är rader och kolumner utan har en tydlig struktur med nyckel-värdepar.
  3. Raderna (eller dokument som kallas in MongoDB) behöver inte ha ett schema definierat i förväg. Istället kan fälten skapas direkt.
  4. Datamodellen tillgänglig inom MongoDB låter dig representera hierarkiska relationer, lagra arrayer och lagra andra mer komplexa strukturer enklare.
  5. Skalbarhet - Den MongoDB miljöer är mycket skalbara. Företag över hela världen har definierade kluster, och vissa av dem kör över 100 noder med cirka miljontals dokument i databasen.

MongoDB Exempelvis

Exemplet nedan visar hur ett dokument kan modelleras in MongoDB.

  1. Fältet _id läggs till av MongoDB för att unikt identifiera dokumentet i samlingen.
  2. Det du kan notera är att orderdata (OrderID, Produkt och Kvantitet), som i RDBMS normalt lagras i en separat tabell, faktiskt lagras som ett inbäddat dokument i själva samlingen i MongoDBDetta är en av de viktigaste skillnaderna i hur data modelleras i MongoDB.

MongoDB Exempelvis

Nyckelkomponenter i MongoDB Architecture

Nedan är några av de vanligaste termerna som används i MongoDB:

  1. _id – Detta är ett fält som krävs i varje MongoDB dokumentera. Fältet _id representerar ett unikt värde i MongoDB dokumentera. _id-fältet är som dokumentets primärnyckel. Om du skapar ett nytt dokument utan ett _id-fält, MongoDB skapar automatiskt fältet. Så om vi till exempel ser exemplet med kundtabellen ovan, MongoDB kommer att lägga till en 24-siffrig unik identifierare till varje dokument i samlingen.
_Id Kundnummer Köparens namn OrderID
563479cc8a8a4246bd27d784 11 Guru99 111
563479cc7a8a4246bd47d784 22 Trevor Smith 222
563479cc9a8a4246bd57d784 33 Nicole 333
  1. Samling – Detta är en gruppping of MongoDB dokument. En samling är motsvarigheten till en tabell som skapas i vilken annan RDBMS som helst, t.ex. Oracle eller MS SQL. En samling finns inom en enda databas. Som framgår av inledningen, kräver samlingar inte någon form av struktur.
  2. Markör – Detta är en pekare till resultatuppsättningen av en fråga. Klienter kan iterera genom en markör för att hämta resultat.
  3. Databas – Detta är en behållare för samlingar, som i RDBMS där det är en behållare för tabeller. Varje databas får sin egen uppsättning filer i filsystemet. MongoDB server kan lagra flera databaser.
  4. Dokument – Ett rekord i en MongoDB En samling kallas i princip för ett dokument. Dokumentet kommer i sin tur att bestå av fältnamn och värden.
  5. Fält – Ett namn-värde-par i ett dokument. Ett dokument har noll eller fler fält. Fält är analoga med kolumner i relationsdatabaser. Följande diagram visar ett exempel på fält med nyckel-värde-par. Så i exemplet nedan är CustomerID och 11 ett av de nyckel-värde-par som definieras i dokumentet.

Nyckelkomponenter i MongoDB Architecture

  1. JSON – Detta är känt som JavaScript Objektnotation. Detta är ett mänskligt läsbart, vanlig textformat för att uttrycka strukturerad data. JSON stöds för närvarande i många programmeringsspråk.

Bara en snabb notering om nyckelskillnaden mellan _id-fältet och ett normalt samlingsfält. Fältet _id används för att unikt identifiera dokumenten i en samling och läggs automatiskt till av MongoDB när samlingen skapas.

Varför använda MongoDB?

Nedan följer några anledningar till varför man bör börja använda MongoDB:

  1. Dokumentorienterad - Eftersom MongoDB är en NoSQL typ databas, istället för att ha data i ett relationstypformat, lagrar den data i dokument. Detta gör MongoDB mycket flexibel och anpassningsbar till verkliga affärssituationer och krav.
  2. Ad hoc-frågor - MongoDB stöder sökning efter fält, intervallfrågor och reguljära uttryckssökningar. Förfrågningar kan göras för att returnera specifika fält i dokument.
  3. Indexering – Index kan skapas för att förbättra sökresultaten inom MongoDB. Vilket fält som helst i en MongoDB dokument kan indexeras.
  4. replikation - MongoDB kan ge hög tillgänglighet med replikuppsättningar. En replikuppsättning består av två eller fler MongoDB instanser. Varje medlem i replikuppsättningen kan när som helst agera i rollen som primär eller sekundär replik. Den primära repliken är huvudservern som interagerar med klienten och utför alla läs-/skrivåtgärder. De sekundära replikerna behåller en kopia av data från den primära servern med hjälp av inbyggd replikering. När en primär replik misslyckas växlar replikuppsättningen automatiskt till den sekundära servern och blir sedan primär server.
  5. Lastbalansering - MongoDB använder konceptet sharding för att skala horisontellt genom att dela upp data över flera MongoDB instanser. MongoDB kan köra över flera servrar, balansera belastningen och/eller duplicera data för att hålla systemet igång i händelse av hårdvarufel.

Datamodellering i MongoDB

Som vi har sett från inledningen, data i MongoDB har ett flexibelt schema. Till skillnad från i SQL databaser, där du måste ha en tabells schema deklarerat innan du infogar data, MongoDBs samlingar upprätthåller inte dokumentstruktur. Denna typ av flexibilitet är vad som gör MongoDB så kraftfull.

Vid modellering av data i MongoDB, tänk på följande:

  1. Vilka är applikationens behov – Titta på applikationens affärsbehov och se vilka data och vilken typ av data som behövs för applikationen. Baserat på detta, säkerställ att dokumentets struktur bestäms därefter.
  2. Vilka är datahämtningsmönstren – Om du förutser stor användning av frågor, överväg då att använda index i din datamodell för att förbättra effektiviteten hos frågorna.
  3. Sker det täta infogningar, uppdateringar och borttagningar i databasen? Överväg användningen av index eller införliva sharding om det behövs i din datamodelleringsdesign för att förbättra effektiviteten i din övergripande MongoDB miljö.

Skillnad mellan MongoDB & RDBMS

Nedan är några av de viktigaste skillnaderna mellan termerna MongoDB och RDBMS:

RDBMS MongoDB Skillnaden
Bord Samling In RDBMS, tabellen innehåller kolumnerna och raderna som används för att lagra data, medan i MongoDB Samma struktur kallas en samling. Samlingen innehåller dokument som i sin tur innehåller fält, vilka i sin tur är nyckel-värde-par.
Rad Dokument I RDBMS representerar raden en enda, implicit strukturerad datapost i en tabell. I MongoDB, lagras uppgifterna i dokument.
Kolumn Fält I RDBMS anger kolumnen en uppsättning datavärden. Dessa i MongoDB är kända som fält.
Fogar Inbäddade dokument I RDBMS sprids data ibland över olika tabeller, och för att visa en komplett vy över all data bildas ibland en koppling mellan tabeller för att hämta informationen. MongoDB, lagras data normalt i en enda samling, men separeras med hjälp av inbäddade dokument. Så det finns inget koncept med joins i MongoDB.

Förutom skillnaderna i termer visas några andra skillnader nedan:

  1. Relationsdatabaser är kända för att upprätthålla dataintegritet. Detta är inte ett uttryckligt krav i MongoDB.
  2. RDBMS kräver att data är normaliserad först så att det kan förhindra överblivna poster och dubbletter. Normalisering av data kräver då fler tabeller, vilket i sin tur resulterar i fler tabellkopplingar, vilket kräver fler nycklar och index. När databaser börjar växa kan prestandan bli ett problem. Återigen är detta inte ett uttryckligt krav i MongoDB. MongoDB är flexibel och behöver inte data för att normaliseras först.

Vanliga frågor

MongoDB lagrar stora volymer ostrukturerad och semistrukturerad data, vilket gör den användbar för AI- och ML-pipelines. Dess flexibla dokument innehåller träningsdata, funktionsuppsättningar och modellmetadata, och Atlas lägger till vektorsökning för AI-appar.

Ja. MongoDB Med Atlas Vector Search kan du lagra och söka efter vektorinbäddningar tillsammans med dina dokument. Detta stöder semantisk sökning, rekommendationer och generering med hämtningsförstärkt funktion för AI-applikationer utan en separat vektordatabas.

MongoDB Community Edition är gratis och har öppen källkod. MongoDB erbjuder även Atlas, en hanterad molntjänst med en gratisnivå, och Enterprise Edition med avancerad säkerhet och support mot en avgift.

Många stora organisationer använder MongoDB för flexibel datalagring med hög volym, inklusive företag inom e-handel, spel, IoT och innehållshantering. Dess skalbarhet genom sharding och replikering passar applikationer med miljontals dokument.

Sammanfatta detta inlägg med: