Docs 菜单
Docs 主页
/
Atlas 图表
/ /

对数据运行聚合管道

在此页面上

  • 例子
  • 解决聚合管道错误
  • 限制

聚合管道可将文档转化为聚合结果集。在 Atlas Charts 中,聚合管道通常用于可视化根据现有字段的计算结果创建的新字段,但也有许多其他应用程序。

要创建聚合管道:

  1. Query(查询)栏中,输入聚合管道。您的管道必须放在方括号中。

  2. (可选)选择 Format(格式),按如下方式排列查询:

    • 将查询拆分为多行

    • 按照 JSON 惯例缩排查询内容

  3. (有条件)如果您选择了 Format(格式)选项,请在完成后单击 Close(关闭)。

  4. 单击 Apply(应用)执行您的管道。

以下图表显示了办公用品公司的总销售额,按商店位置分类。该图表在 Query(查询)栏中使用以下聚合管道:

[
{
$unwind: "$items"
},
{
$addFields: {
saleAmount: {
$multiply: [ "$items.price", "$items.quantity" ]
}
}
}
]

此聚合管道按以下顺序处理集合数据:

  1. $unwind阶段展开items大量并为大量中的每个项目输出一个新文档。 items大量中的每个元素都包含ACID 事务期间出售的单个项目。

  2. $addFields阶段向文档添加一个名为saleAmount的新字段。 $multiply表达式将saleAmount的值设置为items.priceitems.quantity的乘积。 您可以在以下屏幕截图中看到这个突出显示的新字段:

Aggregation Pipeline 示例
点击放大

使用管道处理数据后,图表将显示按门店位置分类的所有 saleAmountsSum

如果聚合无效,Charts 会在 Query 栏中显示 图标。

如果尚未显示 Query(查询)栏,请单击此栏以查看错误详细信息。Charts 显示以下错误的详细信息:

  • 客户端错误,例如格式错误的 JSON,以及

  • 服务器端错误,例如无效的 MQL 或不支持的管道阶段。

聚合管道错误示例
点击放大

查看错误详情,然后相应调整聚合管道。

  • Charts不支持在聚合查询中使用$lookup操作符。 但是,您可以在数据源管道中使用此操作符。 要详细学习;了解如何使用管道在数据到达图表生成器之前对其进行预处理,请参阅创建和管理Charts视图。

  • Charts$function仅当您在单行中定义函数体并用double 引号引起来时, 才支持 操作符。要在聚合查询中使用此操作符,必须使用以下语法:

    {
    $function: {
    body: "function(arg1, arg2, ...) { ... }",
    args: <array expression>,
    lang: "js"
    }
    }

后退

添加查询字段