Wat is MongoDB?
MongoDB is een documentgeoriënteerd databaseprogramma dat op meerdere platforms werkt, waarvan de sourcecode beschikbaar is en dat onder de NoSQL-databases valt. Het maakt gebruik van JSON-achtige documenten met optionele schema's en het wordt ontwikkeld door MongoDB Inc.
In plaats van tabellen en rijen te gebruiken zoals traditionele relationele databases, maakt MongoDB gebruik van verzamelingen en documenten. Documenten bestaan uit zogeheten sleutel-waardeparen (“key-value pairs”), de basiseenheden voor gegevens in MongoDB, en verzamelingen bevatten sets documenten.

MongoDB is dus ontworpen voor om grote hoeveelheden gegevens op te slaan. Daardoor is het geschikt voor het werken met grote sets gedistribueerde gegevens.
MongoDB ondersteunt diverse programmeertalen, waaronder C, C++, C#, Go, Java, Python, Ruby en Swift. Tot de functies ervan behoren ad-hocquery's, indexering, loadbalancing, aggregatie, het uitvoeren van JavaScript op de server, hoge beschikbaarheid door ingebouwde replicatie en failover, plus horizontale schaalbaarheid met ingebouwde sharding.
Hoe werkt MongoDB?
MongoDB is een voorbeeld van een NoSQL-database. NoSQL, wat voor “niet alleen SQL” staat, vertegenwoordigt een aanpak voor databasemanagement die verder gaat dan SQL: allerlei gegevensmodellen kunnen worden verwerkt, niet alleen documenten, maar ook kolommen, graphs en sleutel-waardeparen.
In tegenstelling tot traditionele relationele databases die op gestructureerde tabelindelingen zijn gebaseerd, maken NoSQL-databases gebruik van andere methoden om gegevens op te slaan en op te vragen. Deze databases zijn steeds populairder geworden, vooral op het gebied van Big Data. NoSQL-databases zijn ook nuttig voor web-, cloud- en mobiele applicaties met grote hoeveelheden data.
NoSQL-implementatie in MongoDB
In MongoDB worden gegevens opgeslagen in documenten, die lijken op JSON-objecten. Deze documenten bestaan uit paren van sleutels en waarden en kunnen andere documenten, arrays en arrays van documenten bevatten. Deze structuur komt overeen met de ingebouwde gegevenstypen in veel programmeertalen. Hierdoor zijn dure “joins” minder nodig en is een vloeiend polymorfisme mogelijk.
Documenten worden opgeslagen in verzamelingen, die vergelijkbaar zijn met tabellen in relationele databases. In tegenstelling tot tabellen in relationele databases forceren verzamelingen in MongoDB echter geen schema. Dit betekent dat de documenten in een verzameling verschillende velden kunnen hebben.
MongoDB gebruikt verschillende opslagengines. U kunt degene kiezen die het geschiktst is voor uw toepassing. Het maakt ook gebruik van een “journal”, een logboek dat helpt de database te herstellen in het geval van een noodgedwongen stop.
Efficiëntie, beschikbaarheid, schaalbaarheid
Indexen worden gebruikt om de leesbewerkingen efficiënter te maken door de hoeveelheid gegevens te verminderen die querybewerkingen moeten verwerken. De MongoDB-queryplanner kiest en cachet het efficiëntste queryplan op basis van de beschikbare indexen.
MongoDB biedt ook hoge beschikbaarheid via zijn replicatiefunctie, die een replicaset heet. Dit is een groep MongoDB-servers die dezelfde gegevensset blijven houden; dit zorgt voor redundantie en bevordert een hogere beschikbaarheid van deze gegevens.
De database ondersteunt ook horizontale schaalbaarheid, waardoor u uw database kunt laten groeien door meer machines toe te voegen om een grotere belasting aan te kunnen. Het ondersteunt ook een ontwerp met gedistribueerde systemen, waardoor u gegevens intelligent kunt plaatsen waar u ze hebben wilt.
Waarom zou u MongoDB gebruiken?
MongoDB is zeer geschikt voor allerlei use cases met clouddatabases vanwege het flexibele gegevensmodel, de hoge lees- en schrijfsnelheid, de automatische failover en de ondersteuning voor meerdere gelijktijdige query's, indexering en aggregatie. Dit zijn enkele van de beste use cases voor MongoDB:
Moderne webapplicaties
MongoDB is ideaal voor het bouwen van schaalbare, op veel data gebaseerde webapplicaties. Het documentgeoriënteerde gegevensmodel en de persistentiestrategieën zijn gemaakt voor hoge lees- en schrijfsnelheden, waardoor het zeer geschikt is voor toepassingen die hoge prestaties en schaalbaarheid vereisen.
Artificiële intelligentie, edge, IoT
Het flexibele datamodel en de schaalbaarheid van MongoDB maken het tot een goede keuze voor AI, edge computing en IoT-toepassingen, waarbij vaak grote hoeveelheden uiteenlopende gegevens moeten worden verwerkt.
Big data-applicaties
MongoDB heeft ook de voorkeur bij big data-applicaties vanwege de mogelijkheid om veel verschillende gegevenssoorten te verwerken, de ondersteuning voor realtime analyse, het uiterst snelle invoeren van data, de prestaties vanwege de lage latentie, het flexibele datamodel, de eenvoudige horizontale schaalbaarheid en de krachtige querytaal.
Single view-applicaties
Met zijn flexibele schema en de mogelijkheid om gegevens uit diverse bronnen samen te voegen is het met MongoDB eenvoudig om één overzicht (een “single view”) te maken van data uit meerdere bronnen.
Realtime data-analyse
Gebruikers van MongoDB kunnen alle aanwezige gegevens analyseren en realtime inzichten genereren. Hierdoor kunnen bedrijven sneller reageren op markttrends, potentiële problemen detecteren en voorkomen en kunnen ze persoonlijkere klantervaringen bieden.
Er wordt ook wel gezegd dat het vermogen van MongoDB om grote hoeveelheden gegevens te verwerken en realtime analyses uit te voeren, ertoe leidt dat het een goede keuze is voor use cases waarbij personalisatie belangrijk is. Dan is het begrijpen van gebruikersgedrag en het bieden van persoonlijke ervaringen essentieel.
Wat zijn de voordelen van MongoDB?
De gegevensopslagfilosofie van MongoDB is eenvoudig en onmiddellijk voor iedereen te begrijpen, zelfs voor iemand zonder programmeerervaring. Het slaat gegevens op in verzamelingen zonder een gedwongen schema, waardoor het bijzonder geschikt is voor ontwikkelaars die mogelijk geen database-experts zijn. Toch biedt het gebruik van MongoDB ook tal van technische voordelen:
Schaalbaarheid
MongoDB is vanaf de basis ontworpen als gedistribueerde database. Het kan binnen en tussen meerdere gedistribueerde datacenters worden opgeschaald. Dit biedt nieuwe niveaus van beschikbaarheid en schaalbaarheid, die voorheen onbereikbaar waren met relationele databases zoals MySQL.
Prestaties
Als database leunt MongoDB voor opslag zwaar op RAM. Dit maakt snellere prestaties mogelijk tijdens het uitvoeren van query's. Waar mogelijk haalt MongoDB de gegevens direct uit het RAM-geheugen in plaats vanaf de harde schijf. Databaseverzoeken produceren hierdoor sneller een antwoord.
Ontwikkelaarsvriendelijk
MongoDB-documenten zijn van nature geschikt voor moderne, objectgeoriënteerde programmeertalen. Het gebruik van MongoDB elimineert de complexe ORM-laag (object-relational mapping) waarmee objecten tot code voor relationele tabellen worden omgezet.
Hoge beschikbaarheid
Kenmerken zoals replicatie en gridFS verhogen de beschikbaarheid van gegevens. Door middel van indexering is het opvragen van documenten ook gemakkelijk.
Het is ook vermeldenswaard dat MongoDB een groot en volwassen ecosysteem voor zijn platform heeft met een wereldwijde community van ontwikkelaars en consultants. Hierdoor is het gemakkelijk om hulp te krijgen. Er is ook een mogelijkheid tot support op enterprise-niveau.
Verschil tussen MongoDB en RDBMS
MongoDB en RDBMS (Relational Database Management System) zijn allebei een type database, maar ze verschillen aanzienlijk qua structuur, schaalbaarheid, gegevensverwerking en gebruiksscenario's.

Gegevensstructuur en querytaal
RDBMS gebruikt een gestructureerd gegevensmodel waarbij gegevens worden opgeslagen in tabellen met rijen en kolommen. Elke tabel heeft een primaire sleutel als unieke ID voor een rij. Verder zijn er externe sleutels om relaties tussen tabellen tot stand te brengen. SQL (Structured Query Language) wordt gebruikt om query's uit te voeren op databases in een RDBMS.
MongoDB is echter een documentgeoriënteerde database waarin gegevens worden opgeslagen in de BSON-indeling (Binary JSON), een binaire soort JSON-documenten. Het maakt geen gebruik van SQL, maar gebruikt in plaats daarvan MongoDB Query Language (MQL). Dit is zo gemaakt dat developers het gemakkelijk kunnen gebruiken. Het datamodel van MongoDB biedt veel flexibiliteit, omdat een verzameling documenten kan bevatten met verschillende velden en gegevenstypen.
Schaalbaarheid
RDBMS is verticaal schaalbaar, wat betekent dat de prestaties kunnen worden verbeterd door meer serverresources zoals RAM toe te voegen. Het is echter niet ontworpen voor horizontale schaalbaarheid, waarbij gegevens over meerdere servers worden gedistribueerd.
MongoDB is daarentegen zowel verticaal als horizontaal schaalbaar. Het kan grote hoeveelheden gegevens opslaan en het is ontworpen om gegevens over meerdere servers te verdelen, waardoor het geschikt is voor grootschalige toepassingen.
Dataverwerking en prestaties
RDBMS is geschikt voor het verwerken van gestructureerde gegevens met sterke relaties en biedt een hoog niveau van gegevensbeveiliging. Het ondersteunt complexe “joins” en richt zich op de ACID-regels (atomiciteit, consistentie, isolatie, duurzaamheid).
MongoDB is geschikt voor het verwerken van ongestructureerde of semigestructureerde gegevens en is bijzonder effectief voor hiërarchische gegevensopslag. Het ondersteunt geen complexe “joins” en richt zich op de CAP-regels (consistentie, beschikbaarheid oftewel “availability” en partitietolerantie). MongoDB is over het algemeen sneller dan RDBMS, omdat het gerelateerde gegevens bij elkaar kan opslaan, waardoor gegevens vaak sneller kunnen worden opgehaald.
Use cases
RDBMS is doorgaans een goede keuze voor toepassingen met gestructureerde gegevens en sterke relaties, zoals financiële systemen, waarbij gegevensintegriteit en transacties van kritiek belang zijn.
MongoDB is geschikter voor use cases als contentmanagementsystemen, realtime analyses en “agile” ontwikkelwerk, waarbij gegevensschema's kunnen veranderen en schaalbaarheid een belangrijke vereiste is.
De keuze tussen MongoDB en RDBMS hangt af van de specifieke vereisten van de applicatie, zoals de aard van de gegevens, de behoefte aan schaalbaarheid en het type bewerkingen dat op de gegevens moet worden uitgevoerd.

MongoDB vergeleken met andere databases
MongoDB versus MySQL
MongoDB, als opensource NoSQL-database, staat bekend om zijn flexibiliteit in het opslaan van ongestructureerde gegevens met behulp van verzamelingen en documenten. Het ondersteunt allerlei functies zoals replicatie, ad-hocquery's, sharding en load balancing.
MySQL is daarentegen een opensource relationele database die de voorkeur geniet voor gestructureerde gegevensopslag in rijen en kolommen. Het biedt functies als replicatie, beveiliging, prestatieschema en back-up.
Op vlakken als gebruiksgemak, schaalbaarheid, beveiliging en snelheid is duidelijk dat MongoDB voordelen biedt qua schaalbaarheid en snelheid, vanwege de horizontale schaalbaarheid en het efficiënt verwerken van ongestructureerde gegevens. MySQL staat bekend om zijn geschiktheid voor applicaties die hoge referentiële integriteit en beveiliging vereisen. De keuze tussen MongoDB en MySQL hangt af van de specifieke zakelijke vereisten en gebruiksscenario's.
MongoDB versus Cassandra
Cassandra, ontwikkeld door Facebook en onderhouden door de Apache Software Foundation, blinkt uit in het verwerken van grote hoeveelheden data en biedt hoge beschikbaarheid en schaalbaarheid zonder een vast schema. MongoDB, ontwikkeld door MongoDB Incorporated, staat bekend om het opslaan van grote hoeveelheden JSON-gegevens en staat flexibele schema's toe.
Qua prestaties presteert Cassandra beter bij schrijfbewerkingen, omdat het meerdere primaire nodes ondersteunt. MongoDB levert echter uitstekende leesprestaties en ondersteunt secundaire indexen, met name voor geneste objecten.
Beide databases schalen goed op, maar verschillen qua architectuur: Cassandra gebruikt een ringstructuur waarbij elke node actief is en MongoDB gebruikt een primair/secundair systeem van nodes. MongoDB biedt een veelomvattend kader voor aggregaties en een breder scala aan gegevenstypen, terwijl Cassandra add-ons nodig heeft voor aggregatie en beperktere gegevenstypen heeft. De beveiligingsfuncties zijn voor beide vergelijkbaar, maar de licenties verschillen: MongoDB werkt met een systeem met meerdere licenties en Cassandra werkt met de Apache-licentie v2.0. De use cases variëren: Cassandra is ideaal voor workloads met veel schrijfbewerkingen en geografisch gedistribueerde gegevens, terwijl MongoDB geschikt is voor workloads met big data, contentmanagement en analyses.

MongoDB, gemanaged in een vertrouwde cloud
Verminder uw time-to-market en bevrijd uw ontwikkelaars van tijdrovende infrastructuurbeheertaken, zodat ze zich op innovatie kunnen richten. Wij verzorgen installatie, onderhoud, back-ups, beveiliging en monitoring van uw MongoDB-databases.

Managed Databases for MySQL
Implementeer met een paar klikken de populairste opensource relationele database-engine. Bij OVHcloud krijgt u een volledig gemanagede service voor uw MySQL-database. Dit geeft u meer controle over uw data voor e-commerce projecten en applicaties. We beheren uw service — van configuratie, onderhoud en back-up tot hoge beschikbaarheid en updates. Dit betekent dat u zich met een gerust hart kunt richten op het ontwikkelen van de functies van uw applicatie.

Managed Databases for Cassandra
Versnel de groei van uw bedrijf door met enkele klikken een gemanagede Cassandra-cluster te implementeren. Deze prestatiegerichte, opensource NoSQL-database-engine is perfect voor het verwerken van resource-intensievere taken en biedt tevens een ongeëvenaarde beschikbaarheid. We beheren de service — inclusief configuratie, onderhoud, back-up, hoge beschikbaarheid en updates — en u kunt zich richten op het ontwikkelen van de functies van uw applicatie.