De basis van de mongosh-shell
U gebruikt mongosh om van database te wisselen, collections weer te geven en interactief uw eerste documentqueries uit te voeren.
De basis van de mongosh-shell is een gratis MongoDB Academy-les op CoddyKit. Dit is les 4 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject MongoDB Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus MongoDB Academy bevat in totaal 4 lessen.
Wat is mongosh?
mongosh is de officiële shell van MongoDB, gebouwd op Node.js — daardoor kun je er rechtstreeks moderne JavaScript in gebruiken. Het is de standaardmanier om vanaf de opdrachtregel verbinding te maken.
# Install mongosh on macOS
brew install mongosh
# Connect to a local MongoDB instance
mongosh
# Connect to an Atlas cluster
mongosh 'mongodb+srv://user:pass@cluster0.abc.mongodb.net/myapp'
# Connect with explicit host and port
mongosh --host localhost --port 27017Navigeren door databases en collecties
Met enkele opdrachten kun je de weg vinden: show dbs geeft databases weer, met use wissel je van database en met show collections zie je wat erin staat. De variabele db is altijd je huidige database.
// Navigate in mongosh
show dbs
// admin 0.000GB
// myapp 0.008GB
use myapp
// switched to db myapp
db
// myapp
show collections
// users
// ordersJe eerste invoeging
Je eerste document toevoegen kan in één regel: insertOne. De opdracht retourneert de nieuwe _id en met een snelle findOne controleer je of het document is opgeslagen. De code doorloopt beide stappen.
// Insert one document
db.users.insertOne({
name: 'Alice',
email: 'alice@example.com',
age: 28,
createdAt: new Date()
});
// { acknowledged: true, insertedId: ObjectId('64a2f3b1...') }
// Verify it was stored
db.users.findOne();
// { _id: ObjectId('64a2f3b1...'), name: 'Alice', ... }Eenvoudige find()-query's
find retourneert alle overeenkomende documenten; geef een filter mee om het resultaat te beperken of gebruik findOne voor precies één document. Een leeg filter retourneert alles. De code laat enkele voorbeelden zien.
// Find all documents
db.users.find({});
// Find with an equality filter
db.users.find({ name: 'Alice' });
// findOne by _id
db.users.findOne({ _id: ObjectId('64a2f3b1...') });
// Find with multiple conditions (implicit AND)
db.users.find({ age: 28, active: true });
// Type 'it' in shell to get next 20 resultsResultaten tellen en beperken
Met enkele hulpmiddelen bepaal je hoeveel gegevens je terugkrijgt: countDocuments, plus limit en skip op een query. Samen vormen limit en skip de basis voor paginering. De code laat ze zien.
// Count active users
db.users.countDocuments({ active: true });
// 842
// Get first 5 users
db.users.find({}).limit(5);
// Skip first 10, get next 5 (page 3 of 5-per-page)
db.users.find({}).skip(10).limit(5);
// Fast approximate total
db.users.estimatedDocumentCount();
// 4823Queryresultaten sorteren
Koppel sort om resultaten te ordenen — 1 voor oplopend en -1 voor aflopend. Je kunt zelfs op meerdere velden tegelijk sorteren als aanvullende criteria. De code laat enkele sorteringen zien.
// Sort by age descending (oldest first)
db.users.find({}).sort({ age: -1 });
// Sort by last name then first name
db.users.find({}).sort({ lastName: 1, firstName: 1 });
// Most recently created first
db.users.find({}).sort({ createdAt: -1 }).limit(10);
// Combined: find active users, sort by age, limit to 5
db.users.find({ active: true }).sort({ age: 1 }).limit(5);Projecties: velden selecteren
Een projectie bepaalt welke velden worden teruggegeven — 1 om op te nemen en 0 om uit te sluiten. Dit beperkt bandbreedte en geheugen wanneer je niet elk veld nodig hebt. De code laat voorbeelden zien.
// Include only name and email (exclude everything else)
db.users.find({}, { name: 1, email: 1 });
// { _id: ObjectId('...'), name: 'Alice', email: 'alice@...' }
// Exclude _id too
db.users.find({}, { name: 1, email: 1, _id: 0 });
// { name: 'Alice', email: 'alice@...' }
// Exclude sensitive fields
db.users.find({}, { passwordHash: 0, ssn: 0 });Leesbare uitvoer en shell-hulpmiddelen
mongosh maakt resultaten automatisch leesbaar op. Handige hulpmiddelen zijn toArray, forEach, distinct en explain om te bekijken hoe een query wordt uitgevoerd. De code laat ze zien.
// Get all distinct cities from user addresses
db.users.distinct('address.city');
// ['Chicago', 'London', 'Tokyo', ...]
// Iterate with forEach
db.users.find({ active: true }).forEach(user => {
print(user.name + ' - ' + user.email);
});
// Check if query uses an index
db.users.find({ email: 'alice@test.com' }).explain('executionStats');Snelle opdrachten voor bijwerken en verwijderen
Volledige CRUD behandel je later, maar de belangrijkste opdrachten zijn updateOne, deleteOne en deleteMany. Gebruik bij updates altijd $set, anders vervang je het hele document!
// Update a specific field (CORRECT: use $set)
db.users.updateOne(
{ email: 'alice@example.com' },
{ $set: { age: 29, updatedAt: new Date() } }
);
// Delete one document
db.users.deleteOne({ email: 'alice@example.com' });
// WARNING: This REPLACES the entire document (no $set):
// db.users.updateOne({ email: '...' }, { age: 29 });
// Now the document has ONLY { _id, age: 29 } !!!Shellvariabelen en scripts
Omdat mongosh echte JavaScript gebruikt, kun je variabelen, lussen en scripts gebruiken om taken te automatiseren — veel krachtiger dan een eenvoudige SQL-opdrachtregelinterface. De code laat een lus zien.
// Variable-driven query
const targetCity = 'Chicago';
const users = db.users.find({ 'address.city': targetCity }).toArray();
print('Users in ' + targetCity + ': ' + users.length);
// For loop to seed test data
for (let i = 1; i <= 10; i++) {
db.products.insertOne({ name: 'Product ' + i, price: i * 10 });
}
// Run from CLI without entering the shell:
// mongosh mydb --eval "db.users.countDocuments({})"Vanuit de shell verbinding maken met Atlas
Om Atlas te bereiken, haal je de verbindingsreeks op uit de gebruikersinterface — deze gebruikt mongodb+srv, waarmee je cluster via DNS wordt gevonden. Sla de reeks op in een omgevingsvariabele, niet in je shellgeschiedenis.
# Store URI in environment variable (never hard-code credentials)
export MONGODB_URI='mongodb+srv://alice:s3cr3t@cluster0.abc.mongodb.net'
# Connect from shell
mongosh $MONGODB_URI
# Switch to your app database
use myapp
# Verify connection
db.runCommand({ ping: 1 })
# { ok: 1 }Korte controle
Toets je begrip van de concepten rond MongoDB en NoSQL-databases uit deze les.
Samenvatting van de les
Je hebt geleerd dat mongosh een JavaScript-shell is, dat projecties velden selecteren en dat je sort, limit en skip aan elkaar koppelt om resultaten vorm te geven. Hierna: documenten invoegen.
Leer JavaScript met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 30
- Lessen
- 120
Veelgestelde vragen
Is de les “De basis van de mongosh-shell” gratis?
Ja — de volledige tekst van “De basis van de mongosh-shell” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus MongoDB Academy wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus MongoDB Academy bevat in totaal 4 lessen.
Wat leer ik in “De basis van de mongosh-shell”?
U gebruikt mongosh om van database te wisselen, collections weer te geven en interactief uw eerste documentqueries uit te voeren. Je oefent met MongoDB Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met MongoDB Academy te beginnen?
Ervaring vooraf is niet nodig. MongoDB Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 4 van 4.
Hoe lang duurt de les “De basis van de mongosh-shell”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over MongoDB Academy?
Ja. Elke les over MongoDB Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- Wat is een BSON-document?
- Collections versus SQL-tabellen
- Databases, collections en namespaces
- De basis van de mongosh-shell