CRUD Operations
- insertOne()Insert document
- insertMany()Insert multiple
- find()Query documents
- findOne()Query single
- updateOne()Update first match
- updateMany()Update all matches
- deleteOne()Delete first match
- deleteMany()Delete all matches
Query Operators
- $eq, $neEqual, not equal
- $gt, $gteGreater than
- $lt, $lteLess than
- $in, $ninIn array
- $and, $orLogical operators
- $existsField exists
- $regexPattern match
Update Operators
- $setSet field value
- $unsetRemove field
- $incIncrement value
- $pushAdd to array
- $pullRemove from array
- $addToSetAdd unique
- $renameRename field
Database Commands
- show dbsList databases
- use dbnameSwitch database
- show collectionsList collections
- db.dropDatabase()Drop database
- db.stats()DB statistics
Query Examples
// Find all documents
db.users.find({})
// Find with conditions
db.users.find({ age: { $gte: 18 } })
// Multiple conditions (AND)
db.users.find({
status: "active",
age: { $gte: 21 }
})
// OR condition
db.users.find({
$or: [
{ status: "active" },
{ role: "admin" }
]
})
// Projection (select fields)
db.users.find({}, { name: 1, email: 1, _id: 0 })
Aggregation Pipeline
db.orders.aggregate([
// Match stage (filter)
{ $match: { status: "completed" } },
// Group stage
{ $group: {
_id: "$customerId",
totalAmount: { $sum: "$amount" },
orderCount: { $sum: 1 }
}},
// Sort stage
{ $sort: { totalAmount: -1 } },
// Limit results
{ $limit: 10 }
])
Aggregation Stages
- $matchFilter docs
- $groupGroup by field
- $sortSort results
- $projectReshape docs
- $lookupJoin collections
- $unwindFlatten arrays
Indexes
// Create index
db.users.createIndex({ email: 1 })
// Unique index
db.users.createIndex(
{ email: 1 },
{ unique: true }
)
// Compound index
db.users.createIndex({
status: 1,
createdAt: -1
})
// List indexes
db.users.getIndexes()
Update Examples
// Update single document
db.users.updateOne(
{ _id: ObjectId("...") },
{ $set: { name: "New Name" } }
)
// Update multiple documents
db.users.updateMany(
{ status: "inactive" },
{ $set: { archived: true } }
)
// Upsert (insert if not exists)
db.users.updateOne(
{ email: "user@example.com" },
{ $set: { lastLogin: new Date() } },
{ upsert: true }
)
// Increment value
db.posts.updateOne(
{ _id: postId },
{ $inc: { views: 1 } }
)
Array Operators
- $elemMatchMatch element
- $allContains all
- $sizeArray length
- $sliceArray subset
- $First match
Cursors
- .sort()Sort results
- .limit()Limit count
- .skip()Skip documents
- .count()Count results
- .explain()Query analysis