MongoDB - Xand-r/IT-Landscape GitHub Wiki
Dit maakt het mogelijk om gegevens op een hiërarchische manier te structureren, wat handig is bij object-georiënteerde programmeerstijlen en moderne webapplicaties. NoSQL databases onderscheiden zich op een aantal belangrijke vlakken van traditionele sql databases:
- Hoge prestaties: Dankzij document-gebaseerde opslag is MongoDB heel efficiënt bij het verwerken van veel gegevens, dit zie je vooral bij lees en schrijfbewerkingen.
- Flexibel schema: Er is geen vast datamodel nodig. Documenten in een collectie kunnen verschillende velden hebben. Ideaal voor toepassingen met snel veranderende data of onvoorspelbare data.
- JSON/BSON-gebaseerd: Werkt heel goed samen met webtechnologieën zoals JavaScript en frameworks zoals Node.js aangezien er in deze talen ook gebruik word gemaakt van JSON.
Dat is nu allemaal handig en leuk al die voordelen van een nosql database of MongoDB maar wat kan je daar nu mee? Hier zijn een aantal praktische toepassingen dat MongoDB aanbied:
- Content Management Systemen (CMS): Ideaal voor content met wisselende structuren per pagina of artikeltype. Moesten we verder gegaan zijn met Drupal zou dit ideaal geweest zijn.
- Mobiele backends: Flexibele opslag voor gebruikersgegevens, sessies, voorkeuren, etc.
- Webapplicaties: Denk aan websites met verkoops platformen waar producten uiteenlopende eigenschappen kunnen hebben.
- Big Data en Machine Learning: Opslag van ongestructureerde data zoals sensoren, tekst of social media feeds.
Voor we beginnen met de installatie van MongoDB is er eerst nog een vereiste dat in orde moet zijn. Deze is exact hetzelfde als die bij Drupal. We gaan ook hier terug gebruik maken van een Docker Compose om de database te installeren dus moet je Docker geinstalleerd hebben. Aangezien je tot hier bent geraakt ga ik er terug van uit dat je dit al gedaan hebt.
-
project directory:
Om te beginnen mag je weer ergens een nieuw mapje aanmaken waarin je de db wilt bijhouden. -
docker-compose.yml:
Nu mag je weer je compose file aanmaken. Deze hoortdocker-compose.yml
te noemen. Deze mag je daarna dan openen in een teksteditor (VSCode is aangeraden). -
copier de code:
Zodra je het bestand ergens open hebt staan mag je de volgende code daarin plakken:
services:
mongo:
image: mongo:8.0
container_name: mongodb
restart: always
ports:
- "27017:27017"
environment:
MONGO_INITDB_ROOT_USERNAME: root
MONGO_INITDB_ROOT_PASSWORD: password
volumes:
- mongo-data:/data/db
- mongo-config:/data/configdb
volumes:
mongo-data:
driver: local
mongo-config:
driver: local
Wat er in deze code staat is opzich niet belangrijk. Het enige wat je moet weten is dat je username en password hier in staan. Je kan deze veranderen als je van plan deze database serieus te gebruiken. Als je dit aan het doen bent om te testen kan je de username en password zo laten voor de gemakkelijkheid.
-
Compose bestand uitvoeren:
Zodra je tevreden bent met je username en password kan je het bestand gaan uitvoeren. Dit doe je door een terminal binnen de folder te openen waar het bestand in zit. Dit gaat zeer makkelijk met VSCode door de folder links in je bestanden te selecteren met rechter muistoets en op "open in integrated terminal" te klikken. Hier voer je dan het commandodocker-compose up -d
uit. -
Testen:
Nu is je database klaar en zou hij aan het werken moeten zijn. Dit kunnen we snel doen door in dezelfde terminal het commandodocker ps
uit te voeren. Hier zou dan je container tussen moeten komen te staan.
Nu dat we onze database container hebben is de database klaar maar hoe gaan we daar nu mee te werk? Voor we onze database echt kunnen beheren gaan we eerst nog een beheersoftware moeten downloaden waarom we dan gaan verbinden met onze database en zo het beheren.
De software dat we nog moeten downloaden is MongoDB Compass. Deze applicatie is dus ook gemaakt door de makers van MongoDB. Om deze software te installeren mag je naar deze link gaan en onder de sectie genaamd "MongoDB Compass Download (GUI)" mag je de juiste instellingen selecteren voor jouw systeem en op download klikken. Zodra dat gedaan is mag je de installen helemaal uitvoeren op de standaard instellingen tot de applicatie zichzelf opstart.
Hoe gaan we nu met deze applicatie onze database beheren?
-
Nieuwe connectie:
Ongeveer in het midden van het scherm zou er een knop moeten staan dat zegt "Add new connection". Deze mag je selecteren om zo naar de volgende pagina te gaan.
-
Connectie configureren: Zodra je op de connectie pagina zit is het vrij simpel. We de database in onze Compose zo geconfigureert dat we de port niet moeten aanpassen. Het enige dat nu aangevuld moet worden is de username en het wachtwoord. De URI dat er nu staat is incompleet en moeten we bijvullen. Deze moet er als volgend uit zien:
mongodb://root:password@localhost:27017
.
Als je de username en het wachtwoord niet heb aangepast in de Compose file kan je gewoon deze URI kopieren en plakken. Als je aanpassingen hebt gemaakt moet je "root" vervangen met je eigen username en "password" door je eigen wachtwoord. -
Save & Connect: Nu kan je op "Save & Connect" drukken en is je connectie klaar. Via deze applicatie kan je nu je nieuwe database beheren hoe je wilt.
In dit stukje gaan we het nog snel hebben over een paar puntjes in verband met het beheer van onze database. Dit gaat gaan over dingen zoals backups maken.
Het kan altijd wel gebeuren dat je een foutje maakt of een iets grotere fout maakt bij het gebruiken van een database. Dit kan heel lastig zijn maar als je een back-up hebt staan van de database is dit geen probleem. Daarom gaan we nu zien hoe we een back-up kunnen maken binnen MongoDB Compass en ook hoe we die back-up dan ook terugzetten.
Back-up maken:
Hier krijg je de keuze hoe je je data wilt opslagen. In ons geval gaan we deze data alleen gebruiken om het bij te houden en eventueel terug te importeren in MongoDB. Daarom is het hier best om voor JSON te gaan. Nu mag je op export klikken om het proces te finaliseren.
Het is belangrijk dat je het bestand dat hieruit gekomen is goed bewaard aangezien dit je back-up is. Als je dit bestand verliest en er gaan iets mis in de database heb je niets meer om terug op te komen.
Database terugzetten:
Hier is het ook heel belangrijk dat we de juiste collectie selecteren voor we data gaan importeren. Alle data dat vooraf in deze collectie zat zal namelijk overschreven worden door de import van data.