SadServers
  • Scenarios
  • Labs
    All Labs Linux & Bash Web Servers Databases Data Processing Docker Kubernetes CI/CD Infrastructure as Code Tooling / Applications
  • Dashboard
  • Solutions
    For Individuals For Businesses
  • Ranking
  • Newsletter
  • Documentation
    FAQ Support Pro Accounts Pro+ Accounts Business Accounts Gift API CLI/TUI Privacy Troubleshooting Interviews
  • Blog
  • Pricing
  • Gift
    Gift Purchase Gift Redeem
  • About
Log In - Sign Up
  1. Labs
  2. MongoDB
  3. Cheatsheet

Guide

Concepts and learning path

Troubleshooting

Failure modes and fixes

Cheatsheet

Commands to keep handy

MongoDB cheatsheet

mongosh — connect

CommandDescription
mongosh "mongodb://localhost:27017"Local connect
mongosh "mongodb://user:pass@host:27017/mydb"Connect with auth
mongosh "mongodb://h1,h2,h3/mydb?replicaSet=rs0"Replica set connection
show dbsList databases
use mydbSwitch database
show collectionsList collections

Service and health

CommandDescription
systemctl status mongodService status
ss -tlnp | grep 27017Confirm listener
db.serverStatus()Uptime, connections, opcounters
db.stats()Database size and counts
db.currentOp()Running operations

CRUD and queries

CommandDescription
db.users.findOne({ name: "alice" })Find one document
db.users.find({ status: "active" }).limit(10)Filtered query
db.users.insertOne({ name: "bob" })Insert document
db.users.updateOne({ _id: id }, { $set: { x: 1 } })Update document
db.users.deleteMany({ status: "inactive" })Delete matching docs
db.users.countDocuments({ status: "active" })Count documents

Indexes and explain

CommandDescription
db.users.getIndexes()List indexes
db.users.createIndex({ email: 1 }, { unique: true })Create index
db.users.explain("executionStats").find({ email: "a@b.com" })Query plan with stats

Replica set

CommandDescription
rs.status()Member states, health, optime
rs.conf()Replica set configuration
rs.initiate()Initialize new replica set
rs.add("host2:27017")Add member
rs.stepDown()Primary steps down (election)
rs.printSecondaryReplicationInfo()Lag per secondary
db.hello()Am I primary? set name, me

Replication lag check

// On primary — oplog window rs.printReplicationInfo() // On primary — lag per secondary rs.printSecondaryReplicationInfo() // Member state: PRIMARY, SECONDARY, RECOVERING, etc. rs.status().members.forEach(m => print(m.name, m.stateStr, m.health))

Users and auth

use admin db.createUser({ user: "appuser", pwd: "secret", roles: [{ role: "readWrite", db: "mydb" }] }) db.getUsers() db.auth("appuser", "secret")

Backup and restore

CommandDescription
mongodump --uri="mongodb://host/mydb" --out=/backup/Logical backup
mongodump --oplog --out=/backup/Dump + oplog (replica set)
mongorestore --uri="mongodb://host/mydb" /backup/mydbRestore database
db.fsyncLock() / db.fsyncUnlock()Pause writes for snapshot (secondary)

Pro tips

  • Always use a replica set connection string in production — not a single host
  • Writes must target the PRIMARY — not primary errors mean failover or wrong read preference
  • Use explain("executionStats") — COLLSCAN on large collections needs an index
  • Three voting members minimum for reliable elections (or 2 data + 1 arbiter)
  • Secondaries are not backups — schedule mongodump; test restores

Practice scenarios

Hands-on MongoDB scenarios on live Linux VMs: mongodb

SadServersSadServers

Real-world Linux and DevOps scenarios for hands-on learning and technical assessment.

Uptime Robot ratio (30 days)
Product
  • Scenarios
  • For Individuals
  • For Businesses
  • Pricing
Resources
  • FAQ
  • Blog
  • Newsletter
Company
  • About Us
  • Support
  • Privacy Policy
  • Terms of Service
  • Contact
Connect With Us
info@sadservers.com

Made in Canada 🇨🇦
Updated: 2026-06-13 16:06 UTC – 2d2950a