Wat is MongoDB? Architectuur, kenmerken en voorbeeld

โšก Slimme samenvatting

MongoDB is een documentgeoriรซnteerde NoSQL-database die wordt gebruikt voor de opslag van grote hoeveelheden data, waarbij collecties en documenten worden gebruikt in plaats van tabellen en rijen. Deze bron legt uit wat het is. MongoDB Kenmerken, een voorbeelddocument, belangrijke architectuurcomponenten, redenen om het te gebruiken, datamodellering en hoe het verschilt van een relationele database.

  • ๐Ÿ“„ Documentmodel: Gegevens worden opgeslagen als sleutel-waardeparen in collecties, niet in tabellen.
  • ๐Ÿงฉ Flexibel schema: Velden worden dynamisch aangemaakt zonder vooraf gedefinieerde structuur.
  • ???? ๏ธ Kern onderdelen: _id, collectie, document, veld, cursor, database en JSON.
  • โš™๏ธ Waarom het gebruiken: Ad-hoc query's, indexering, replicatie en sharding voor schaalbaarheid.
  • ๐Ÿ”„ Vs RDBMS: Collecties vervangen tabellen en ingebedde documenten vervangen joins.

Wat is MongoDB

Wat is MongoDB?

MongoDB is een documentgeoriรซnteerde NoSQL-database die wordt gebruikt voor gegevensopslag met grote volumes. In plaats van tabellen en rijen te gebruiken zoals in de traditionele relationele databases, MongoDB maakt gebruik van collecties en documenten. Documenten bestaan โ€‹โ€‹uit sleutel-waardeparen die de basiseenheid van gegevens vormen MongoDBCollecties bevatten sets documenten en functies, wat overeenkomt met tabellen in een relationele database. MongoDB is een database die halverwege de jaren 2000 aan het licht kwam.

MongoDB Kenmerken

  1. Elke database bevat collecties die op hun beurt documenten bevatten. Elk document kan verschillend zijn, met een wisselend aantal velden. De grootte en inhoud van elk document kunnen ook van elkaar verschillen.
  2. De documentstructuur komt meer overeen met hoe ontwikkelaars hun klassen en objecten in hun respectievelijke programmeertalen construeren. Ontwikkelaars zullen vaak zeggen dat hun klassen geen rijen en kolommen zijn, maar een duidelijke structuur hebben met sleutel-waardeparen.
  3. De rijen (of documenten zoals genoemd in MongoDB) hoeven niet van tevoren een schema te hebben gedefinieerd. In plaats daarvan kunnen de velden dynamisch worden aangemaakt.
  4. Het datamodel dat beschikbaar is binnen MongoDB Hiermee kunt u hiรซrarchische relaties weergeven, arrays opslaan en andere complexere structuren gemakkelijker opslaan.
  5. Schaalbaarheid - The MongoDB Omgevingen zijn zeer schaalbaar. Bedrijven over de hele wereld hebben clusters gedefinieerd, waarvan sommige meer dan 100 knooppunten bevatten met miljoenen documenten in de database.

MongoDB Voorbeeld

Het onderstaande voorbeeld laat zien hoe een document kan worden gemodelleerd MongoDB.

  1. Het veld _id wordt toegevoegd door MongoDB om het document in de collectie uniek te identificeren.
  2. Wat opvalt, is dat de ordergegevens (order-ID, product en hoeveelheid), die in een RDBMS normaal gesproken in een aparte tabel worden opgeslagen, in feite als een ingebed document in de collectie zelf zijn opgeslagen. MongoDBDit is een van de belangrijkste verschillen in de manier waarop gegevens worden gemodelleerd in MongoDB.

MongoDB Voorbeeld

Belangrijkste onderdelen van MongoDB Architectuur

Hieronder vindt u enkele veelgebruikte termen MongoDB:

  1. _ID kaart โ€“ Dit is een verplicht veld in elke MongoDB document. Het veld _id vertegenwoordigt een unieke waarde in de MongoDB document. Het veld _id is vergelijkbaar met de primaire sleutel van het document. Als u een nieuw document aanmaakt zonder een _id-veld, MongoDB zal het veld automatisch aanmaken. Dus bijvoorbeeld, als we kijken naar het bovenstaande voorbeeld van de klantentabel, MongoDB Aan elk document in de collectie wordt een unieke 24-cijferige identificatiecode toegevoegd.
_ID kaart Klanten ID Klantnaam Order ID
563479cc8a8a4246bd27d784 11 Guru99 111
563479cc7a8a4246bd47d784 22 Trevor Smith 222
563479cc9a8a4246bd57d784 33 Nicole 333
  1. Collectie โ€“ Dit is een groepping of MongoDB documenten. Een collectie is het equivalent van een tabel die in elk ander RDBMS wordt aangemaakt, zoals Oracle of MS SQL. Een collectie bestaat binnen รฉรฉn enkele database. Zoals in de inleiding al is aangegeven, leggen collecties geen enkele structuur op.
  2. Cursor โ€“ Dit is een verwijzing naar de resultatenset van een query. Clients kunnen een cursor doorlopen om resultaten op te halen.
  3. Database โ€“ Dit is een container voor collecties, net zoals in een relationele database (RDBMS) een container voor tabellen. Elke database krijgt zijn eigen set bestanden op het bestandssysteem. MongoDB server kan meerdere databases opslaan.
  4. Document โ€“ Een record in a MongoDB Een verzameling wordt in principe een document genoemd. Het document bestaat op zijn beurt uit veldnamen en waarden.
  5. Veld โ€“ Een naam-waardepaar in een document. Een document heeft nul of meer velden. Velden zijn vergelijkbaar met kolommen in relationele databases. Het volgende diagram toont een voorbeeld van velden met sleutel-waardeparen. In het onderstaande voorbeeld zijn CustomerID en 11 een van de sleutel-waardeparen die in het document zijn gedefinieerd.

Belangrijkste onderdelen van MongoDB Architectuur

  1. JSON โ€“ Dit staat bekend als JavaScript Object Notation. Dit is een voor mensen leesbaar, plat tekstformaat voor het uitdrukken van gestructureerde data. JSON wordt momenteel in veel programmeertalen ondersteund.

Even een korte opmerking over het belangrijkste verschil tussen het _id-veld en een normaal verzamelveld. Het veld _id wordt gebruikt om de documenten in een collectie uniek te identificeren en wordt automatisch toegevoegd door MongoDB wanneer de collectie wordt gemaakt.

Waarom gebruiken MongoDB?

Hieronder volgen enkele redenen waarom men zou moeten beginnen met het gebruik van... MongoDB:

  1. Documentgericht - Sinds MongoDB is een NoSQL type database, in plaats van gegevens in een relationeel typeformaat op te slaan, slaat het de gegevens op in documenten. Dit maakt MongoDB Zeer flexibel en aanpasbaar aan reรซle zakelijke situaties en eisen.
  2. Ad-hocvragen - MongoDB ondersteunt zoeken op veld, bereikquery's en reguliere expressiezoekopdrachten. Query's kunnen worden uitgevoerd om specifieke velden binnen documenten te retourneren.
  3. Indexeren Er kunnen indexen worden aangemaakt om de prestaties van zoekopdrachten binnen te verbeteren. MongoDB. Elk veld in a MongoDB document kan worden geรฏndexeerd.
  4. kopiรซren - MongoDB kan een hoge beschikbaarheid bieden met replica-sets. Een replica-set bestaat uit twee of meer MongoDB instanties. Elk lid van de replicaset kan op elk moment de rol van primaire of secundaire replica vervullen. De primaire replica is de hoofdserver die met de client communiceert en alle lees- en schrijfbewerkingen uitvoert. De secundaire replica's bewaren een kopie van de gegevens van de primaire replica met behulp van ingebouwde replicatie. Wanneer een primaire replica uitvalt, schakelt de replicaset automatisch over naar de secundaire replica, die vervolgens de primaire server wordt.
  5. Load balancing - MongoDB gebruikt het concept van sharding om horizontaal te schalen door gegevens over meerdere te splitsen MongoDB instanties. MongoDB kan over meerdere servers draaien, waarbij de belasting wordt verdeeld en/of gegevens worden gedupliceerd om het systeem draaiende te houden in geval van een hardwarestoring.

Gegevensmodellering in MongoDB

Zoals we in de inleiding hebben gezien, bevatten de gegevens in MongoDB heeft een flexibel schema. Anders dan binnen SQL databases, waar u het schema van een tabel moet laten declareren voordat u gegevens invoegt, MongoDB's collecties dwingen de documentstructuur niet af. Dit soort flexibiliteit is wat maakt MongoDB zo krachtig.

Bij het modelleren van gegevens in MongoDBHoud rekening met het volgende:

  1. Wat zijn de behoeften van de applicatie? โ€“ Analyseer de zakelijke behoeften van de applicatie en bepaal welke gegevens en welk type gegevens nodig zijn. Zorg er op basis hiervan voor dat de structuur van het document hierop wordt afgestemd.
  2. Wat zijn de patronen voor het ophalen van gegevens? Als u veel query's verwacht, overweeg dan het gebruik van indexen in uw datamodel om de efficiรซntie van de query's te verbeteren.
  3. Vinden er frequent invoegingen, updates en verwijderingen plaats in de database? Overweeg het gebruik van indexen opnieuw of implementeer sharding indien nodig in uw datamodellering om de algehele efficiรซntie te verbeteren. MongoDB milieu.

Verschil tussen MongoDB & RDBMS

Hieronder staan โ€‹โ€‹enkele van de belangrijkste termverschillen tussen MongoDB en RDBMS:

RDBMS MongoDB Verschil
tafel Collectie In RDBMSDe tabel bevat de kolommen en rijen die worden gebruikt om de gegevens op te slaan, terwijl in MongoDB Deze structuur wordt een collectie genoemd. De collectie bevat documenten, die op hun beurt velden bevatten, die sleutel-waardeparen zijn.
Rij Document In RDBMS vertegenwoordigt de rij รฉรฉn impliciet gestructureerd gegevensitem in een tabel. In MongoDB, worden de gegevens opgeslagen in documenten.
Kolom Veld In RDBMS geeft de kolom een โ€‹โ€‹reeks gegevenswaarden aan. Deze in MongoDB worden velden genoemd.
Sluit zich aan bij Ingesloten documenten In een relationele database (RDBMS) zijn gegevens soms verspreid over verschillende tabellen. Om een โ€‹โ€‹volledig beeld van alle gegevens te krijgen, wordt er soms een join gemaakt tussen de tabellen. MongoDBDe gegevens worden normaal gesproken opgeslagen in รฉรฉn enkele verzameling, maar gescheiden door middel van ingebedde documenten. Het concept van joins bestaat dus niet. MongoDB.

Naast de verschillen in terminologie worden hieronder nog enkele andere verschillen weergegeven:

  1. Relationele databases staan โ€‹โ€‹erom bekend dat ze de gegevensintegriteit afdwingen. Dit is geen expliciete vereiste in de EU MongoDB.
  2. RDBMS vereist dat de gegevens zijn genormaliseerde Ten eerste om weesrecords en duplicaten te voorkomen. Het normaliseren van gegevens vereist vervolgens meer tabellen, wat resulteert in meer tabelkoppelingen, en dus meer sleutels en indexen. Naarmate databases groeien, kan de prestatie een probleem worden. Nogmaals, dit is geen expliciete vereiste in MongoDB. MongoDB is flexibel en hoeft de gegevens niet eerst te normaliseren.

Veelgestelde vragen

MongoDB Atlas slaat grote hoeveelheden ongestructureerde en semi-gestructureerde data op, waardoor het nuttig is voor AI- en ML-pipelines. De flexibele documenten bevatten trainingsdata, feature sets en modelmetadata, en Atlas voegt vectorzoekfunctionaliteit toe voor AI-toepassingen.

Ja. MongoDB Atlas Vector Search stelt u in staat om vector-embeddings op te slaan en te doorzoeken naast uw documenten. Dit ondersteunt semantisch zoeken, aanbevelingen en het genereren van met retrieval verrijkte resultaten voor AI-toepassingen, zonder dat een aparte vectordatabase nodig is.

MongoDB Community Edition is gratis en open source. MongoDB Het bedrijf biedt ook Atlas aan, een beheerde cloudservice met een gratis versie en een Enterprise Edition met geavanceerde beveiliging en ondersteuning tegen betaling.

Veel grote organisaties gebruiken MongoDB Voor grootschalige, flexibele dataopslag, onder andere voor bedrijven in e-commerce, gaming, IoT en contentmanagement. De schaalbaarheid door middel van sharding en replicatie is geschikt voor applicaties met miljoenen documenten.

Vat dit bericht samen met: