Execute aggregation pipelines em seus dados
Os pipelines de agregação transformam seus documentos em um conjunto agregado de resultados. No Atlas Charts, pipelines de agregação são comumente usados para visualizar novos campos criados a partir de resultados calculados de campos pré-existentes, mas também têm muitas outras aplicações.
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:
O estágio
$unwind
desenrola a arrayitems
e gera um novo documento para cada item da array. Cada elemento na matrizitems
contém um único item vendido durante uma transação.O estágio
$addFields
adiciona um novo campo aos documentos chamadosaleAmount
. A expressão$multiply
define o valor desaleAmount
para o produto deitems.price
eitems.quantity
. Você pode ver este novo campo destacado na seguinte captura de tela:
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
Os Charts não suportam o operador
$lookup
em queries de agregação . No entanto, você pode usar esse operador em pipelines de fonte de dados. Para saber mais sobre como usar pipelines para pré-processar dados antes que eles cheguem ao Construtor de Gráficos, consulte Criar e gerenciar Visualização de Charts .Os Charts suportam o operador
$function
somente quando você define o corpo da função em uma única linha e o envolve em aspas double . Para usar esse operador em suas queries de agregação , você deve usar a seguinte sintaxe:{ $function: { body: "function(arg1, arg2, ...) { ... }", args: <array expression>, lang: "js" } }