Aggregation pipelines transform your documents into an aggregated set of results. In Atlas Charts, aggregation pipelines are commonly used to visualize new fields created from calculated results of pre-existing fields, but also have many other applications.
Para criar um pipeline de agregação:
Na barra Query, insira um pipeline de agregação. Seu pipeline deve estar entre colchetes.
(Opcional) Selecione Format para organizar a consulta da seguinte maneira:
Dividir a consulta em várias linhas
Recue a consulta de acordo com as convenções JSON
(Condicional) Se você selecionou a opção Format, clique em Close quando terminar.
Clique em Apply para executar seu pipeline.
Exemplo
O gráfico a seguir mostra os valores totais de venda de uma empresa de suprimentos de escritório, categorizados pelo local da loja. O gráfico utiliza o seguinte pipeline de agregação na barra Query:
[ { $unwind: "$items" }, { $addFields: { saleAmount: { $multiply: [ "$items.price", "$items.quantity" ] } } } ]
Esse pipeline de agregação processa os dados de coleta usando o seguinte pedido:
The
$unwindstage unwinds theitemsarray and outputs a new document for each item in the array. Each element in theitemsarray contains a single item sold during a transaction.The
$addFieldsstage adds a new field to the documents calledsaleAmount. The$multiplyexpression sets the value ofsaleAmountto the product ofitems.priceanditems.quantity. You can see this new field highlighted in the following screenshot:

Após os dados serem processados utilizando o pipeline, o gráfico exibe o Sum de todas as saleAmounts categorizadas por local da loja.
Erros de pipeline de agregação de endereço
Se sua agregação for inválida, os gráficos exibirão o ícone na barra Query.
Clique na barra Query se ela ainda não estiver exibida para visualizar os detalhes de erro. O Charts exibe detalhes de erro para:
Erros do lado do cliente, como JSON malformado, e
Erros do lado do servidor, como MQL inválido ou estágios de pipeline não suportados.

Analise os detalhes do erro e ajuste seu funil de agregação de acordo.
Limitações
Charts doesn't support the
$lookupoperator in aggregation queries. However, you can use this operator in Data Source pipelines. To learn more about how to use pipelines to pre-process data before it reaches the Chart Builder, see Create and Manage Charts Views.Charts supports the
$functionoperator only when you define the function body in a single line and wrap it in double quotes. To use this operator in your aggregation queries, you must use the following syntax:{ $function: { body: "function(arg1, arg2, ...) { ... }", args: <array expression>, lang: "js" } }