Inloggen
Inloggen

Hoe gebruik je MongoDB Shell

Hoe gebruik je MongoDB Shell
Minhal Abbas
Technisch schrijver
NoSQL-database MongoDB
23.10.2025
Reading time: 8 min

MongoDB Shell is een aanpasbare JavaScript- en Node.js-REPL-omgeving (Read-Eval-Print Loop) voor het werken met MongoDB-implementaties. Het is een essentieel hulpmiddel voor het uitvoeren van query’s, beheren van databases en uitvoeren van verschillende bewerkingen. Het biedt een gebruiksvriendelijke interface voor databasebeheer, zowel lokaal als op een externe server.

Dit artikel laat stap voor stap zien hoe je MongoDB Shell kunt gebruiken.

Stap 1: Installatie van MongoDB Shell

Voordat je begint, controleer of MongoDB Shell op het systeem is geïnstalleerd. Zo niet, download dan de juiste versie van de officiële website en volg de installatie-instructies voor jouw besturingssysteem.

Windows

Bezoek de officiële pagina, kies de Windows-versie en start de download.

macOS

Op de officiële pagina kies je de macOS-versie en start je de download. Je kunt ook Homebrew gebruiken door de volgende opdrachten uit te voeren:

brew tap mongodb/brew
brew install mongosh

Linux

Raadpleeg de richtlijnen op de website voor Linux. Bijvoorbeeld, op een Debian-gebaseerd systeem volg je deze stappen:

Voeg de GPG-sleutel toe voor de MongoDB-repository:

curl -fsSL https://pgp.mongodb.com/server-7.0.asc |  sudo gpg -o /usr/share/keyrings/mongodb-server-7.0.gpg --dearmor

Voeg de MongoDB-repository toe aan je systeem:

echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/7.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-7.0.list

Werk de pakketlijst bij:

sudo apt update

Installeer MongoDB:

sudo apt install mongodb-org -y

Image4

Na succesvolle installatie controleer je de geïnstalleerde versie:

mongod --version

Image6

Na de installatie kun je de service inschakelen, starten en de status controleren:

sudo systemctl enable mongod
sudo systemctl start mongod
sudo systemctl status mongod

Image5

Als je op zoek bent naar een betrouwbare, krachtige en betaalbare oplossing voor je workflows, biedt Hostman Linux VPS-hostingopties, waaronder Debian VPS, Ubuntu VPS en VPS CentOS.

Stap 2: Verbinding maken met een instantie

Na de installatie kun je verbinding maken met een instantie. Als deze lokaal is, typ je mongosh. Standaard maakt dit verbinding met de instantie die draait op poort 27017 op localhost:

mongosh

Image7

De volgende syntaxis wordt gebruikt om verbinding te maken met een externe server:

mongodb+srv://<gebruikersnaam>:<wachtwoord>@<cluster_adres>/<database>?retryWrites=true&w=majority

Vervang <gebruikersnaam>, <wachtwoord>, <cluster_adres> en <database> door de werkelijke inloggegevens en verbindingsdetails.

Stap 3: Navigatie in de terminal

Zodra je bent verbonden, kun je met databases werken. Voordat je begint, toont de interface een welkomstbericht:

Image7

De toegewezen database van een nieuw Shell-exemplaar heet test. Deze kan veilig worden gebruikt voor experimenten.

Nuttige bewerkingen zijn hieronder weergegeven:

Alle databases weergeven

Voer show dbs uit om een overzicht te krijgen van alle beschikbare databases:

show dbs

Image10

De huidige database weergeven

De meeste opdrachten werken op een database of een verzameling binnen de database. Het object db vertegenwoordigt de momenteel geselecteerde database:

db

Image9

Van database wisselen

Voer de use-opdracht in met de databasenaam, bijvoorbeeld new_db, om deze te maken of ernaar te schakelen:

use new_db

Image11

Vervang new_db door de daadwerkelijke naam van de database.

Een object invoegen

Voeg eerst een object met een naam toe aan student_data in de bestaande new_db:

db.student_data.insertOne({name: 'School has 500 students'})

Image1

Gebruikers kunnen ook meerdere documenten invoegen in student_data, elk met een veld name met opgegeven waarden. Dit maakt batchinvoer van gegevens in de collectie mogelijk:

db.student_data.insertMany([
{name: 'School has 500 students'},
{name: 'School has 600 students'}
])

Image8

Collecties bekijken

Zodra de gegevens zijn ingevoerd, geef je de bestaande collecties weer:

show collections

Image14

Als je geen verdere taken wilt uitvoeren, verlaat dan de interface door:

exit

Image12

Je begrijpt nu de basisbewerkingen van de Shell.

Stap 4: CRUD-bewerkingen

Bij het werken met de Shell zijn CRUD-bewerkingen (Create, Read, Update, Delete) essentieel. Laten we enkele basisbewerkingen uitvoeren:

Aanmaken/Invoegen van gegevens

Wanneer je nieuwe informatie in een collectie invoegt, gebruik je de functie insertOne. Laten we een nieuwe collectie aanmaken en vullen met de vereiste informatie, inclusief name (naam), age (leeftijd) en city (stad):

db.collection.insertOne({ name: "Harry", age: 45, city: "Sydney" })

Image13

Gegevens zoeken/lezen

Je kunt documenten in een collectie opvragen met de functie find. Bijvoorbeeld, alle records met een leeftijd groter dan 25 worden opgehaald:

db.collection.find({ age: { $gt: 25 } }) //  Condition where age is greater than 25

Image15

Gegevens bijwerken

Gebruik de functies updateOne of updateMany om bestaande documenten te wijzigen. Bijvoorbeeld, de leeftijd van Harry wordt bijgewerkt naar 50:

db.collection.updateOne({ name: "Harry" }, { $set: { age: 50 } })

Image16

Gegevens verwijderen

Gebruik de methoden deleteOne of deleteMany om records uit de collectie te verwijderen. Deze opdracht verwijdert een document met de waarde John in het naamveld:

db.collection.deleteOne({ name: "John" })

Image17

Stap 5: Geavanceerd gebruik

In deze stap voer je complexe bewerkingen uit met behulp van geavanceerde functies. Dankzij debugging-, profilerings- en prestatieoptimalisatietools helpt de Shell om knelpunten te identificeren en je configuratie te optimaliseren.

Aggregatiepijplijn

Met pijplijnen kun je records berekenen en geaggregeerde resultaten verkrijgen. Door pijplijnen te gebruiken, kun je complexe analyses en transformaties maken om waardevolle inzichten uit ruwe gegevens te halen. Om een pijplijn van stappen uit te voeren, gebruik je de functie aggregate. Hier is een voorbeeld:

db.collection.aggregate([
    { $match: { status: "A" } },
    { $group: { _id: "$city", total: { $sum: "$amount" } } },
    { $sort: { total: -1 } }
])

Image18

In dit script filtert de pijplijn documenten met status A, groepeert ze per city, telt de bedragen op en sorteert de resultaten in aflopende volgorde.

De aggregatiepijplijn is een krachtig hulpmiddel voor data-analyse en transformatie. Ze bestaat uit verschillende fasen, die elk de documentstroom veranderen. Deze fasen omvatten:

$project: selecteert of sluit specifieke velden uit.

$match: past een queryvoorwaarde toe om te filteren.

$group: groepeert records op een veld en berekent aggregaties.

$sort: sorteert records op een bepaald veld.

$limit: beperkt het aantal records.

$skip: slaat een bepaald aantal records over.

MapReduce

Een krachtig model voor het verwerken van grote datasets. Gebruik het mapReduce-commando om MapReduce-taken uit te voeren:

// Voorbeeldgegevens
db.collection.insertMany([
    { name: "Harry", age: 25, salary: 5000 },
    { name: "Buttler", age: 30, salary: 6000 },
    { name: "Morgan", age: 35, salary: 7000 }
]);

// Map-functie
var mapFunction = function() {
    emit(this.age, this.salary);
};

// Reduce-functie
var reduceFunction = function(keyAge, valuesSalaries) {
    return Array.sum(valuesSalaries);
};

// Voer MapReduce uit
db.runCommand({
    mapreduce: "collection",
    map: mapFunction,
    reduce: reduceFunction,
    out: "results"
});

db.results.find().forEach(printjson); // Resultaten weergeven

Image3

  • In dit voorbeeld geeft de mapFunction de leeftijd als sleutel en het salaris als waarde door.
  • De reduceFunction telt de salarissen op voor elke leeftijdsgroep.

  • De resultaten worden opgeslagen in een nieuwe collectie genaamd results, en de uitvoer wordt weergegeven met db.results.find().forEach(printjson).

Het resultaat wordt hieronder weergegeven:

Image22

Projectie

Gebruik de projectie-operator om te bepalen welke velden moeten worden opgenomen of uitgesloten uit de resultaten. Hiermee kun je specifieke velden weergeven, bijvoorbeeld alleen name en age. Laten we alleen deze velden projecteren:

db.collection.find({}, { name: 1, age: 1 }) 

Image19

Sorteren

Sorteer de resultaten met de sort-functie. Deze haalt alle documenten op en sorteert ze vervolgens in aflopende volgorde op leeftijd, zodat de hoogste waarden eerst verschijnen. Laten we sorteren op leeftijd in aflopende volgorde:

db.collection.find().sort({ age: -1 }) 

Image20

Beperken

Met de limit-functie kun je het aantal resultaten beperken. Bijvoorbeeld, haal de eerste drie documenten van de collectie op. Dit is handig om een klein deel van de gegevens te bekijken zonder alles op te halen. Beperk tot 3 resultaten:

db.collection.find().limit(3) 

Image21

Overslaan

Gebruik de skip-functie om records over te slaan. Bijvoorbeeld, sla de eerste twee documenten over in de collectie. Dit is handig voor paginering of om initiële records over te slaan. Sla de eerste 2 resultaten over:

db.collection.find().skip(2) 

Image23

Stap 6: Scripten met Shell

Gebruikers kunnen scripts schrijven om taken in de Shell te automatiseren. Sla het script op in een .js-bestand en voer het uit met mongosh. Dit is handig om herhalende taken efficiënt uit te voeren, zoals het invoegen van gegevens of batch-updates:

mongosh script.js

Image2

Door MongoDB-commando’s te beheersen, krijg je waardevolle inzichten in je gegevens.

Conclusie

Met de interactieve MongoDB Shell-interface kun je herhalende beheertaken uitvoeren, zoals schrijven, lezen en wijzigen. Bovendien kun je bestaande collecties raadplegen, nieuwe objecten aan de database toevoegen en beheertaken uitvoeren. Van eenvoudige CRUD-bewerkingen tot complexe aggregaties en scripting, gebruikers kunnen de interface efficiënt gebruiken voor uiteenlopende taken.

Door scripts uit te voeren, kunnen gebruikers repetitieve taken effectief automatiseren. Deze handleiding heeft de installatie, configuratie en beheer van databases, collecties en gebruikers behandeld.

NoSQL-database MongoDB
23.10.2025
Reading time: 8 min

Vergelijkbaar

Heb je vragen,
opmerkingen of zorgen?

Onze professionals staan altijd klaar om je te helpen,
of je nu hulp nodig hebt of gewoon niet weet waar te beginnen
E-mail ons
Hostman's Support