聚合
没有索引,MongoDB 必须执行集合扫描,即扫描集合中的每个文档。 您不能在_id 字段上删除此索引。
语法
db.collection.aggregate( [ { <stage> }, ... ] )
例子
聚合管道阶段
db.orders.aggregate([
// Stage 1: Filter pizza order documents by date range
{
$match: {
date: {
$gte: new ISODate("2020-01-30"),
$lt: new ISODate("2022-01-30"),
},
},
},
// Stage 2: Group remaining documents by date and calculate results
{
$group: {
_id: { $dateToString: { format: "%Y-%m-%d", date: "$date" } },
totalOrderValue: { $sum: { $multiply: ["$price", "$quantity"] } },
averageOrderQuantity: { $avg: "$quantity" },
},
},
// Stage 3: Sort documents by totalOrderValue in descending order
{
$sort: { totalOrderValue: -1 },
},
]);