为了获取呈现图表所需的数据,图表创建了一个MongoDB聚合管道,该管道在MongoDB数据库服务器上执行。管道包含多个阶段,每个阶段都是根据图表作者指定的不同设置生成的。本文档说明了如何使用各种“图表生成器”设置来构建“聚合管道”。您可以通过选择右上方“图表构建器”省略号下拉列表中的“ 查看聚合管道”选项来查看用于创建图表的管道。
MongoDB Charts构建的管道按以下顺序包括以下部分:
注意
创建图表时,您不需要配置所有上述设置。生成聚合管道时,将跳过未指定的设置。
注意
在编码面板中指定的排序和限制当前不包括在聚合管道中。而是在呈现图表时将排序和限制应用于客户端。
下图显示了按购买方式分类的办公用品公司的总销售金额。数据收集中的每个文档代表一次销售。
以该图表为例,我们将探索上述每个设置的规范如何更改由MongoDB图表生成的聚合管道。
在“ 过滤器”窗格中没有添加任何数据源管道,查询栏查询,计算字段和过滤器的情况下,MongoDB图表会生成以下聚合管道:
此阶段的管道仅由“ 编码”面板中的组和最大文档限制(由MongoDB图表设置为5000)组成。
下面的查询将显示的文档限制为仅包含saleDate
等于或比数组中至少包含5个元素更新的文档。是一个数组,其中每个元素都是在销售期间购买的商品。January 1, 2017
items
items
查询:
在“ 查询”栏中应用以上查询将生成以下图表和汇总管道:
聚合管道:
现在,聚合管道从应用查询开始,然后是在“ 编码”面板中选择的组 和最大文档数限制。
我们还可以更改图表以显示按购买方式分类的总收入。为了完成此任务,我们将创建一个计算字段,该字段通过将价格乘以数量来计算总收入。除了上面的查询之外,添加此新的计算字段将产生以下图表和管道:
计算字段表达式:
聚合管道:
现在,更新的管道将在“ 查询”栏中应用的查询的正下方包括计算字段,而其余组件的顺序保持不变。
通过在“ 过滤器”窗格中添加过滤器以仅选择在纽约位置进行的店内销售,可以进一步完善此图表。添加此过滤器将产生以下图表和汇总管道:
聚合管道:
现在,管道将在计算字段的正下方包括storeLocation过滤器,而其余组件的顺序保持不变。