生产级AI代理的8个核心架构模式
2026/6/17 17:05:09
$match、$project、$group、$sort、$limit/$skip),结合电商订单场景拆解每个阶段的核心用法、语法要点与实战代码,所有案例均基于5.1节创建的orders集合。// 快速查看订单集合结构db.orders.findOne();find()完全一致,但仅用于筛选文档(而非投影字段)。{$match:{<查询条件>}}// 仅筛选,不做后续处理db.orders.aggregate([{$match:{status:"已支付",// 等值匹配amount:{$gt:1000}// 金额>1000}}]);db.orders.aggregate([{$match:{create_time:{$gte:ISODate("2025-01-02T00:00:00Z"),$lte:ISODate("2025-01-02T23:59:59Z")}}}]);$match应尽可能放在管道起始位置,先过滤再计算;
支持所有find()的查询操作符($eq、$gt、$in、$and等),例如:{ $match: { category: { $in: ["电子产品", "服装"] } } }。
控制文档的字段显示/隐藏、重命名字段、新增计算字段,重塑文档结构,是聚合管道中“调整输出格式”的核心阶段。
{$project:{<字段1>:1/0,// 1=显示,0=隐藏(_id默认显示,需设为0隐藏)<新字段名>:"$原字段名",// 重命名字段<计算字段>:<表达式>// 新增基于原字段的计算字段}}amount为订单金额,隐藏_iddb.orders.aggregate([{$match:{status:"已支付"}},// 先筛选{$pr