| 筛选 | { $filter: { input: "$scores", as: "s", cond: { $gt: ["$$s", 60] } } } |
|---|---|
| 映射 | { $map: { input: "$items", as: "i", in: { $multiply: ["$$i.qty", "$$i.price"] } } } |
| 取元素 | { $arrayElemAt: ["$items", 0] } |
示例
示例
db.students.aggregate([
{ $project: {
name: 1,
passCount: { $size: { $filter: { input: "$scores", as: "s", cond: { $gte: ["$$s", 60] } } } },
first: { $arrayElemAt: ["$scores", 0] }
} }
])自定义变量用 $$名称 引用;空数组与字段缺失的输入要提前分辨,避免结果不符预期。