Aggregation Pipeline
Basic Aggregation Structure
Pipeline Syntax
// Basic aggregation pipeline
db.collection.aggregate([
{ stage1: { /* stage options */ } },
{ stage2: { /* stage options */ } },
{ stage3: { /* stage options */ } }
])
// Aggregation with options
db.collection.aggregate([
{ $match: { status: "active" } },
{ $group: { _id: "$category", count: { $sum: 1 } } }
], {
allowDiskUse: true,
cursor: { batchSize: 1000 }
})Simple Examples
// Count documents by category
db.products.aggregate([
{ $group: { _id: "$category", count: { $sum: 1 } } }
])
// Average price by category
db.products.aggregate([
{ $group: { _id: "$category", avgPrice: { $avg: "$price" } } }
])
// Total sales by month
db.orders.aggregate([
{ $group: {
_id: { $dateToString: { format: "%Y-%m", date: "$orderDate" } },
totalSales: { $sum: "$amount" }
}}
])Pipeline Stages
$match Stage
$group Stage
$sort Stage
$limit Stage
$skip Stage
$project Stage
$lookup Stage (Join)
$unwind Stage
$addFields Stage
$replaceRoot Stage
$facet Stage
Aggregation Operators
Arithmetic Operators
Comparison Operators
Logical Operators
String Operators
Array Operators
Date Operators
Conditional Operators
Advanced Aggregation Techniques
Window Functions
Graph Lookup
Faceted Search
Bucket Aggregation
Sample Aggregation
Performance Optimization
Index Usage
Memory Management
Cursor Options
Common Aggregation Patterns
Sales Analysis
User Analytics
Product Performance
Last updated