MongoDB Basics Cheat Sheet

1. Connecting to MongoDB

Start MongoDB

mongod

Connect to MongoDB Shell

mongosh

Connect to a Specific Database

mongosh <database_name>

Show Current Database

db

2. Database Management

List All Databases

show dbs

Create or Switch Database

use my_database

Delete a Database

db.dropDatabase()

3. Collection Management

List Collections

show collections

Create a Collection

db.createCollection("employees")

Delete a Collection

db.employees.drop()

4. Insert Documents

Insert One Document

db.employees.insertOne({
  name: "Alice",
  position: "Manager",
  salary: 75000
})

Insert Multiple Documents

db.employees.insertMany([
  { name: "Bob", position: "Developer", salary: 60000 },
  { name: "Carol", position: "Analyst", salary: 55000 }
])

5. Querying Data

Find All Documents

db.employees.find()

Find with Condition

db.employees.find({ salary: { $gt: 60000 } })

Find Specific Fields

db.employees.find({}, { name: 1, salary: 1, _id: 0 })

Find One Document

db.employees.findOne({ name: "Alice" })

Count Documents

db.employees.countDocuments({ position: "Developer" })

6. Update Documents

Update One Document

db.employees.updateOne(
  { name: "Alice" },
  { $set: { salary: 80000 } }
)

Update Multiple Documents

db.employees.updateMany(
  { position: "Developer" },
  { $set: { position: "Senior Developer" } }
)

Replace Document

db.employees.replaceOne(
  { name: "Bob" },
  { name: "Bob", position: "Lead Developer", salary: 70000 }
)

7. Delete Documents

Delete One Document

db.employees.deleteOne({ name: "Carol" })

Delete Multiple Documents

db.employees.deleteMany({ position: "Analyst" })

8. Sorting and Limiting

Sort Results

db.employees.find().sort({ salary: -1 })  // -1 for DESC, 1 for ASC

Limit Results

db.employees.find().limit(5)

Skip Documents

db.employees.find().skip(2)

9. Aggregation

Basic Aggregation

db.employees.aggregate([
  { $group: { _id: "$position", avgSalary: { $avg: "$salary" } } }
])

Match and Project

db.employees.aggregate([
  { $match: { salary: { $gt: 60000 } } },
  { $project: { name: 1, salary: 1, _id: 0 } }
])

10. Indexing

Create an Index

db.employees.createIndex({ name: 1 })

List Indexes

db.employees.getIndexes()

Drop Index

db.employees.dropIndex("name_1")

11. Export and Import Data

Export Data

mongoexport --db=my_database --collection=employees --out=employees.json

Import Data

mongoimport --db=my_database --collection=employees --file=employees.json

12. Backup and Restore

Backup Database

mongodump --db=my_database --out=/backup/path

Restore Database

mongorestore /backup/path

13. Admin Commands

Show Server Status

db.serverStatus()

Show Current Operations

db.currentOp()

Kill Operation

db.killOp(<operation_id>)

Compact Database

db.runCommand({ compact: 'employees' })

14. User Management

Create Admin User

use admin
db.createUser({
  user: "admin",
  pwd: "password123",
  roles: [{ role: "userAdminAnyDatabase", db: "admin" }]
})

Create Database User

db.createUser({
  user: "user1",
  pwd: "pass123",
  roles: [{ role: "readWrite", db: "my_database" }]
})

Show Users

show users

Delete User

db.dropUser("user1")

15. Common Query Operators

Operator Description Example
$eq Equal to { salary: { $eq: 50000 } }
$ne Not equal to { salary: { $ne: 50000 } }
$gt Greater than { salary: { $gt: 50000 } }
$lt Less than { salary: { $lt: 50000 } }
$gte Greater than or equal to { salary: { $gte: 50000 } }
$lte Less than or equal to { salary: { $lte: 50000 } }
$in Matches any value in array { position: { $in: [‘Manager’, ‘CEO’] }}
$nin Not in array { position: { $nin: [‘Analyst’] }}
$regex Matches a pattern { name: { $regex: ‘^A’ } }

Tips for MongoDB

  • Backup regularly to avoid data loss.
  • Use indexes to improve query performance.
  • Prefer embedded documents for better performance.
  • Practice aggregation to handle complex queries efficiently.

Related posts

PostgreSQL Basics Cheat Sheet

SQL Basics Cheat Sheet