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:

  1. docker volume ls
  2. docker volume inspect mongo-data

Wat doet dit?

  1. geeft een lijst van volumes
  2. geeft info over je volume

Handige links

  1. https://hub.docker.com/_/mongo
  2. https://hub.docker.com/_/mongo-express
  3. https://www.mongodb.com/docs/manual/
  4. https://www.mongodb.com/resources/products/compatibilities/docker