MongoDB is een open source databasebeheersysteem (DBMS) dat gebruikmaakt van een documentgericht gegevensmodel. Het wordt beschouwd als een NoSQL-database, omdat het het relationele model niet gebruikt en daarom geen SQL als querytaal gebruikt.
Het documentgeoriënteerde model stelt MongoDB in staat om semi-gestructureerde gegevens op te slaan waarvoor geen vast schema nodig is. Het kan dit bereiken door het gebruik van JSON-documenten.
MongoDB wordt gebruikt door enkele van de grootste bedrijven ter wereld, waaronder Facebook, Google, Nokia, MTV Networks, Cisco, Forbes en nog veel meer.
MongoDB is ook een cross-platform DBMS, dat op het moment van schrijven ondersteuning biedt voor Windows, Mac, Solaris en verschillende Linux-distributies.
Een MongoDB-database verschilt van een relationele database doordat MongoDB een documentgeoriënteerd model gebruikt om gegevens op te slaan. In het documentgeoriënteerde model worden gegevens opgeslagen in documenten van een collectie. In het relationele model worden gegevens opgeslagen in rijen van een tabel.
De collecties
In MongoDB is een verzameling een groep documenten. Een verzameling bevat doorgaans documenten met een soortgelijk onderwerp (zoals gebruikers, producten, berichten, enz.).
Verzamelingen zijn daarom in veel opzichten vergelijkbaar met tabellen uit het relationele model.
De documenten
In MongoDB worden documenten opgeslagen als JSON documenten. JSON (JavaScript Object Notation) is een standaard die gegevensuitwisseling mogelijk maakt. JSON-documenten zijn vergelijkbaar met XML-documenten omdat gegevens op een hiërarchische manier kunnen worden gepresenteerd en door zowel mensen als computers kunnen worden gelezen.
Hier is een voorbeeld van een JSON-document. Dit is hoe documenten in een MongoDB-database eruit zien.
{ artistname : "Deep Purple", albums : [ { album : "Machine Head", year : 1972, genre : "Rock" }, { album : "Stormbringer", year : 1974, genre : "Rock" } ] }
De _id
veld is de unieke identificatie voor een document. Met MongoDB kan elk document worden opgehaald/verwezen met behulp van dit veld. U kunt dit aanleveren of MongoDB het laten genereren.
Door JSON te gebruiken, kunnen queryresultaten eenvoudig worden geparseerd, met weinig of geen transformatie, rechtstreeks door JavaScript en de meest populaire programmeertalen. Dit komt omdat JSON-documenten de naam/paar- en arrayconventies gebruiken die bekend zijn in de meeste populaire programmeertalen zoals C, C++, C#, Java, JavaScript, Perl, Python en vele andere. Dit vermindert de hoeveelheid bedrijfslogica die moet worden ingebouwd in applicaties die MongoDB gebruiken.
Achter de schermen slaat MongoDB de JSON-documenten op in een binair gecodeerd formaat genaamd BSON. BSON breidt JSON uit door aanvullende gegevenstypen te ondersteunen en efficiënt te zijn voor codering en decodering binnen verschillende talen.
Schemaloos
Elk JSON-document in een verzameling kan zijn eigen structuur bevatten. Daarom is er geen vast schema dat het type gegevens beperkt dat in een MongoDB-database kan worden ingevoerd.
Dit in tegenstelling tot een relationele database waar u eerst het schema moet maken (d.w.z. de tabellen, kolommen, gegevenstypen, enz. definiëren), voordat u gegevens invoert. Als gegevens niet voldoen aan het schema, gaan ze niet naar de database.
In een MongoDB-database is er geen regel om te zeggen welke velden of hoeveel velden elk document moet hebben. Een document uit een verzameling kan bijvoorbeeld naam, adres en telefoonnummer bevatten, terwijl een ander document naam en e-mailadres kan bevatten.