MongoDB Complete Guide

Comprehensive MongoDB Commands, CRUD, Aggregation, Indexing & Administration Reference

Database Commands

Command Description
show dbs List databases
use mydb Create/Switch database
db Current database
db.dropDatabase() Delete database

Collection Commands

Command Description
show collections List collections
db.createCollection("users") Create collection
db.users.drop() Delete collection

Insert Documents

db.users.insertOne({
  name:"Mark",
  age:18,
  city:"Delhi"
})
db.users.insertMany([
 {name:"John",age:20},
 {name:"Jane",age:21}
])

Find Documents

db.users.find()

db.users.findOne()

db.users.find().pretty()

Query Operators

Operator Meaning
$eq Equal
$ne Not Equal
$gt Greater Than
$gte Greater Than Equal
$lt Less Than
$lte Less Than Equal
db.users.find({
 age:{ $gt:18 }
})

Logical Operators

db.users.find({
 $and:[
  {age:{ $gt:18 }},
  {city:"Delhi"}
 ]
})
db.users.find({
 $or:[
  {city:"Delhi"},
  {city:"Mumbai"}
 ]
})

Projection

db.users.find(
 {},
 {name:1,email:1,_id:0}
)

Sorting, Limit & Pagination

db.users.find().sort({age:1})

db.users.find().limit(10)

db.users.find().skip(20).limit(10)

Update Operations

db.users.updateOne(
 {name:"Mark"},
 {$set:{age:19}}
)

db.users.updateMany(
 {},
 {$set:{status:"active"}}
)

Delete Operations

db.users.deleteOne({name:"Mark"})

db.users.deleteMany({status:"inactive"})

Array Operations

db.users.updateOne(
 {name:"Mark"},
 {$push:{skills:"MongoDB"}}
)

db.users.updateOne(
 {name:"Mark"},
 {$pull:{skills:"Java"}}
)

Regular Expressions

db.users.find({
 name:/^M/
})

Aggregation Framework

db.users.aggregate([
 {
  $group:{
   _id:"$city",
   total:{$sum:1}
  }
 }
])
db.users.aggregate([
 {
  $group:{
   _id:null,
   avgAge:{$avg:"$age"}
  }
 }
])

Lookup (MongoDB Join)

db.orders.aggregate([
 {
  $lookup:{
   from:"users",
   localField:"userId",
   foreignField:"_id",
   as:"user"
  }
 }
])

Indexing

db.users.createIndex({email:1})

db.users.createIndex(
 {email:1},
 {unique:true}
)

db.users.getIndexes()

Text Search

db.posts.createIndex({
 title:"text",
 content:"text"
})

db.posts.find({
 $text:{
  $search:"mongodb"
 }
})

MongoDB Atlas Connection

mongodb+srv://username:password@cluster.mongodb.net/
const { MongoClient } = require("mongodb");

const client = new MongoClient(uri);

await client.connect();

Backup & Restore

mongodump --db school

mongorestore dump/

User Management

db.createUser({
 user:"admin",
 pwd:"password",
 roles:[
  {
   role:"readWrite",
   db:"school"
  }
 ]
})

Performance Monitoring

db.stats()

db.users.stats()

db.serverStatus()

MongoDB Data Types

Type Example
String "Mark"
Number 18
Boolean true
Array ["JS","MongoDB"]
Object {city:"Delhi"}
Date new Date()
ObjectId _id

Complete CRUD Example

use school

db.students.insertOne({
 name:"Mark",
 age:18
})

db.students.find()

db.students.updateOne(
 {name:"Mark"},
 {$set:{age:19}}
)

db.students.deleteOne({
 name:"Mark"
})