MongoDB - jente-nedergedaelt/IT-Landscape GitHub Wiki
Inleiding tot MongoDB
Wat is MongoDB?
MongoDB is een NoSQL Database. Dat betekent dat het geen klassieke tabellen gebruikt zoals andere databases. In plaats daarvan slaat MongoDB data op in documenten, die je een beetje kan vergelijken met JSON.
Een voorbeeld van een MongoDB document.
{ "naam": "Jente", "leeftijd": 22, "studie": "Graduaat Programmeren" }
zoals je kan zien lijkt het een beetje op een javascript object. Dit maakt het net super handig voor moderne webapplicaties.
Voordelen van een NoSQL Database?
1. Een felxibele structuur
Je moet geen vaste tabellen gebruiken, elk document mag andere velden hebben.
2. Het is sneller
MongoDB is geoptimaliseerd om veel informatie te schrijven en te lezen op een snel tempo.
3. Is handig voor het maken van webapplicaties
Het is perfect te combineren met javascript of Node.js.
4. Makkelijk te gebruiken op grote schaal
Je kan met MongoDB gemakkelijk werken op servers.
Wat zijn praktische toepassingen van MongoDB?
MongoDB wordt vaak gebruikt in situaties waar het belangrijk is om op een grote schaal te kunnen werken, snelheid en flexibiliteit ook belangrijk zijn.
1. Webshops
Voor producten dat veel verschillende eigenschappen hebben.
2. Mobiele Apps
Voor gebruikersdata, chats,...
3. Webapplicaties
Zoals api's, dashboards, real-time dataopslag.
4. Content Managemant Systems (zie wiki CMS)
Er zijn verschillende Content management systems die dat gebruik maken van MongoDB voor de backend.
Installatie van MongoDB met Docker
Vereisten
Zorg ervoor dat docker op je systeem staat (Zie Docker tutorial wiki)
om te checken of dit is gelukt typ: docker --version in je terminal, dit zou in je terminal moeten verschijnen:
Nu dat dit in orde is gaan we verder met de stappen.
Stap 1. Mongo container starten.
Maak een nieuwe map aan. dit doe je door volgende commando's in je terminal te zetten.
mkdir mongodb-docker cd mongodb-docker
Stap 2. Maak een docker compose file aan.
Hier gaan we weer gebruik maken van Visual Studio Code (zie CMS wiki)
en plak het volgende in je visual studio code.
version: '3.1'
services:
mongo: image: mongo container_name: mongodb restart: always ports: - 27017:27017 environment: MONGO_INITDB_ROOT_USERNAME: admin MONGO_INITDB_ROOT_PASSWORD: Admin123 volumes: - mongo-data:/data/db
volumes: mongo-data:
Stap 3. Start je conatainer.
Om je conatainer te starten voeg je volgend commando in:
docker compose up -d
ga daarna controlleren of hij runt, dit doet u door volgend commando in te geven:
docker ps
Handige Docker commando's voor MongoDB
Stoppen van de container
in de terminal: docker stop mongodb
(opnieuw) Starten van de container
in de terminal: docker start mongodb
Bekijken van de log bestanden
in de terminal: docker logs mongodb
Interactieve command shell
in de terminal: docker exec -it mongodb mongosh -u admin -p Admin123
Beheer software met behulp van docker
Om MongoDB makkelijker te beheren in een visuele interface, installeren we MongoDB express
Beheer van MongoDB
Basis beheertaken
Backup maken
in de terminal: docker exec -it mongodb mongodump --username admin --password Admin123 --authenticationDatabase admin --out /data/backup
Schaalbaarheid
MongoDB kan super makkelijk worden geschaald door het verdelen van meerdere servers (sharding) en gebruik te maken van replica sets
Docker volumes
In de Docker Compose file maakten we al gebruik van
volumes:
- mongo-data:/data/db
Dit voorkomt dat je alles verliest bij het stoppen of verwijderen van je container. Het slaagt je data op buiten de container een dus op je eigen systeem.
Handige commando's
in de terminal:
- docker volume ls
- docker volume inspect mongo-data
Wat doet dit?
- geeft een lijst van volumes
- geeft info over je volume