MongoDB Labs Overview
This page maps each hands-on lab to the theory topic it reinforces.
All labs are MongoDB shell scripts (mongosh) located in the labs/ directory.
Running Labs
# Start the cluster first
cd docker && docker compose up -d
# Run a specific lab
docker exec -it mongo1 mongosh --file /labs/01_database_basics.js
# Interactive shell
docker exec -it mongo1 mongosh
Lab Summary
| Lab | File | Description | Theory Module |
|---|---|---|---|
| 01 | 01_database_basics.js |
CRUD operations, projections, bulk writes | NoSQL & MongoDB, Core Concepts |
| 02 | 02_document_modeling.js |
Embedding vs referencing, 1-to-many, many-to-many | Data Modeling |
| 03 | 03_indexes.js |
Single-field, compound, multikey, text, partial, sparse; explain() | Indexes & Aggregation |
| 04 | 04_aggregation_pipeline.js |
$match, $group, $project, $unwind, $sort, $count | Indexes & Aggregation |
| 05 | 05_transactions.js |
Multi-document ACID transactions, retry logic | Transactions & Consistency |
| 06 | 06_ttl_and_capped.js |
TTL indexes, capped collections, change stream intro | TTL & Change Streams |
| 07 | 07_advanced_aggregation.js |
$lookup, $facet, $bucket, $graphLookup, $setWindowFields | Advanced Aggregation |
| 08 | 08_schema_patterns.js |
Bucket, Computed, Polymorphic, Outlier, Subset patterns | Data Modeling |
| 09 | 09_replica_set.js |
rs.status(), read preferences, writeConcern, replication lag | Core Concepts, Advanced Topics |
| 10 | 10_security_basics.js |
createUser, built-in roles, custom roles, TLS guidance | Advanced Topics |
| 11 | 11_monitoring_and_performance.js |
explain(), profiler, $indexStats, serverStatus, currentOp | Advanced Topics |