对数据运行聚合管道
聚合管道可将文档转化为聚合结果集。在 Atlas Charts 中,聚合管道通常用于可视化根据现有字段的计算结果创建的新字段,但也有许多其他应用程序。
要创建聚合管道:
在 Query(查询)栏中,输入聚合管道。您的管道必须放在方括号中。
(可选)选择 Format(格式),按如下方式排列查询:
将查询拆分为多行
按照 JSON 惯例缩排查询内容
(有条件)如果您选择了 Format(格式)选项,请在完成后单击 Close(关闭)。
单击 Apply(应用)执行您的管道。
例子
以下图表显示了办公用品公司的总销售额,按商店位置分类。该图表在 Query(查询)栏中使用以下聚合管道:
[ { $unwind: "$items" }, { $addFields: { saleAmount: { $multiply: [ "$items.price", "$items.quantity" ] } } } ]
此聚合管道按以下顺序处理集合数据:
$unwind
阶段展开items
大量并为大量中的每个项目输出一个新文档。items
大量中的每个元素都包含ACID 事务期间出售的单个项目。$addFields
阶段向文档添加一个名为saleAmount
的新字段。$multiply
表达式将saleAmount
的值设置为items.price
和items.quantity
的乘积。 您可以在以下屏幕截图中看到这个突出显示的新字段:
使用管道处理数据后,图表将显示按门店位置分类的所有 saleAmounts
的 Sum。
解决聚合管道错误
如果聚合无效,Charts 会在 Query 栏中显示 图标。
如果尚未显示 Query(查询)栏,请单击此栏以查看错误详细信息。Charts 显示以下错误的详细信息:
客户端错误,例如格式错误的 JSON,以及
服务器端错误,例如无效的 MQL 或不支持的管道阶段。
查看错误详情,然后相应调整聚合管道。
限制
Charts不支持在聚合查询中使用
$lookup
操作符。 但是,您可以在数据源管道中使用此操作符。 要详细学习;了解如何使用管道在数据到达图表生成器之前对其进行预处理,请参阅创建和管理Charts视图。Charts
$function
仅当您在单行中定义函数体并用double 引号引起来时, 才支持 操作符。要在聚合查询中使用此操作符,必须使用以下语法:{ $function: { body: "function(arg1, arg2, ...) { ... }", args: <array expression>, lang: "js" } }