Last Updated: November 21, 2025
Basic Operations
show dbs
List all databases
use dbName
Switch to database
show collections
List collections
db.collection.find()
Find all documents
db.collection.insertOne({})
Insert one document
db.collection.updateOne({}, {$set: {}})
Update document
db.collection.deleteOne({})
Delete document
Query Operations
// Find documents
db.users.find({ age: { $gt: 18 } })
db.users.find({ name: "John" })
db.users.findOne({ _id: ObjectId("...") })
// Projection (select fields)
db.users.find({}, { name: 1, email: 1, _id: 0 })
// Sorting and Limiting
db.users.find().sort({ age: -1 }).limit(10)
// Count
db.users.countDocuments({ active: true })
CRUD Operations
// Create
db.users.insertOne({
name: "John",
age: 30,
email: "john@example.com"
})
db.users.insertMany([
{ name: "Alice", age: 25 },
{ name: "Bob", age: 35 }
])
// Read
db.users.find({ age: { $gte: 25, $lte: 35 } })
// Update
db.users.updateOne(
{ name: "John" },
{ $set: { age: 31 }, $inc: { visits: 1 } }
)
db.users.updateMany(
{ active: false },
{ $set: { archived: true } }
)
// Delete
db.users.deleteOne({ _id: ObjectId("...") })
db.users.deleteMany({ archived: true })
Query Operators
| Operator | Description | Example |
|---|---|---|
$eq
|
Equal | {age: {$eq: 30}} |
$gt/$gte
|
Greater than/equal | {age: {$gte: 18}} |
$lt/$lte
|
Less than/equal | {age: {$lt: 65}} |
$in
|
In array | {status: {$in: ['active', 'pending']}} |
$ne
|
Not equal | {status: {$ne: 'deleted'}} |
$and
|
Logical AND | {$and: [{age: {$gte: 18}}, {active: true}]} |
$or
|
Logical OR | {$or: [{age: {$lt: 18}}, {age: {$gt: 65}}]} |
Aggregation
db.orders.aggregate([
{ $match: { status: "completed" } },
{ $group: {
_id: "$customerId",
total: { $sum: "$amount" },
count: { $sum: 1 }
}
},
{ $sort: { total: -1 } },
{ $limit: 10 }
])
💡 Pro Tip:
Always create indexes on fields you query frequently for better performance!