MongoDB - jonadi-git/IT-Landscape GitHub Wiki

Wiki MongoDB

Welkom bij de documentatie Wiki MongoDB. Hier vind je handleidingen voor installatie, configuratie en gebruik van MongoDB, evenals tips voor probleemoplossing.


Wat is MongoDB?

MongoDB is een NoSQL-database die bekend staat om zijn flexibiliteit en schaalbaarheid. In plaats van traditionele tabel-gebaseerde relationele database structuur, gebruikt MongoDB JSON-achtige documenten met dynamische schema's.

Belangrijkste Kenmerken:

  • Schema-loos: Flexibele documenten die gemakkelijk kunnen worden aangepast.
  • Horizontale schaalbaarheid: Ondersteunt sharding voor schaalverdeling.
  • Hoge prestaties: Snelle lees- en schrijfprestaties.
  • Rijke query taal: Ondersteunt krachtige query's en aggregaties.

Hoe via Docker Compose een MongoDB databank opzetten?

Stap 1: Maak een project folder aan in je terminal

# Maak een directory aan
mkdir mongo-docker
# Ga naar de directory die je hebt gemaakt
cd mongo-docker
# Open de foler in VisualStudioCode
code .

Stap 2: Maak een bestand aan in VisualStudioCode in de map mongo-docker


Stap 3: MongoDB configuratie in het 'docker-compose.yml' bestand

open het bestand 'docker-compose.yml' in de map mongo-docker en schrijf volgende commando's:

version: '3.8'

services:
  mongo:
    image: mongo:latest
    container_name: mongodb
    restart: unless-stopped
    environment:
      MONGO_INITDB_ROOT_USERNAME: root
      MONGO_INITDB_ROOT_PASSWORD: password
    ports:
      - 27017:27017
    volumes:
      - ./database-data:/data/db

Uitleg over de configuratie:

  • version: '3.8': Dit geeft de versie van het Docker Compose bestand aan. Versie 3.8 biedt ondersteuning voor een breed scala aan functies en is compatibel met recente Docker Engine versies.

  • services: Hier definieer je de verschillende services die deel uitmaken van je applicatie. In dit geval is er slechts één service, genaamd mongo.

  • mongo: Dit is de naam van de service. Het definieert de configuratie voor een MongoDB instance.

  • image: mongo:latest: Dit specificeert de Docker image die wordt gebruikt om de container te maken. mongo:latest betekent dat de nieuwste versie van de MongoDB image van Docker Hub wordt gebruikt.

  • container_name: mongodb: Hiermee geef je een naam aan de container. In dit geval wordt de container mongodb genoemd. Dit maakt het gemakkelijker om de container te identificeren bij het uitvoeren van Docker commando's.

  • restart: unless-stopped: Deze instelling bepaalt het herstartbeleid van de container. unless-stopped betekent dat de container automatisch opnieuw wordt gestart als deze crasht of als Docker opnieuw wordt opgestart, tenzij de container expliciet wordt gestopt door de gebruiker.

  • environment: Hier definieer je omgevingsvariabelen die worden doorgegeven aan de container.

  • MONGO_INITDB_ROOT_USERNAME: root: Dit stelt de root gebruikersnaam in voor de MongoDB instance.

  • MONGO_INITDB_ROOT_PASSWORD: password: Dit stelt het wachtwoord in voor de root gebruiker van de MongoDB instance.

  • ports: Dit deel van de configuratie maakt poorten op de host machine beschikbaar voor de container en verbindt ze met poorten binnen de container.

  • 27017:27017: Dit betekent dat poort 27017 op de host machine wordt gekoppeld aan poort 27017 in de container. MongoDB luistert standaard op poort 27017, dus dit maakt het mogelijk om verbinding te maken met MongoDB via localhost:27017 vanaf de host machine.

  • volumes: Hier geef je aan welke volumes moeten worden gekoppeld aan de container. Volumes worden gebruikt voor het persistent opslaan van data, zodat data niet verloren gaat wanneer de container wordt gestopt of verwijderd.

  • ./database-data:/data/db: Dit koppelt de database-data directory op de host machine aan de /data/db directory in de container. MongoDB slaat standaard zijn databasebestanden op in /data/db, dus dit zorgt ervoor dat de databasebestanden worden opgeslagen op de host machine in de database-data directory. Hierdoor blijven je gegevens behouden, zelfs als de container opnieuw wordt opgestart of verwijderd.


Stap 4: Run de mongo-docker container

Ga terug naar je terminal en voer volgende commando om de mongo-docker container te runnen:

# Docker container laten runnen
docker-compose up -d

MongoDB in Visual Studio Code

Stap 1: Open Visual Studio Code

Open Visual Studio Code Daarna ga je naar het extensie icoontje:

image


Stap 2: Download MongoDB for Vscode

Installeer de extensie

image

Na het installeren van de extensie krijg je een mongoDB icoontje te zien in het activiteitenbalk

image


Stap 3:Verbind met databank

Om met het databank te verbinden klik je op 'add connection'

image

Nu heb je twee opties:

  1. Verbinden met een databank dan klik je op 'connect'
  2. Wil je een databank aanmaken dan klik je op 'open form'

image

Als je voor de tweede optie hebt gekozen, om een databank aan te maken dan volg je de deze stappen.


Hoe maak je een databank aan met 'open form'

  1. Eerst klik je op 'open form'

image


  1. Daarna klik je op 'Advanced connection options'

image


  1. In General in de tab Connection String Scheme kies je voor mongodb

  2. In Host wordt vervolgens vanaf de host machine localhost:27017 gekoppeld aan de poort 27017 in de container.

image


  1. Nu ga je naar de tab Authentication en in de Authentication Method kies je voor Username/Password

  2. Vul nu de gegevens in die je had gekzen om het volgende in te vullen:

Username: root

Password: password

image

  1. Tenslotte klik je op Save & Connect

Na het invullen krijg je onderaan een melding te zien dat je succesvol verbonden bent.

image

Wanneer je op het mongoDB icoontje klikt in de activiteitenbalk, krijg je je connections te zien

image


Voor hulp bij problemen kun je terecht bij: