Execute aggregation pipelines com VS Code
Nesta página
Você pode executarpipelines de agregação em suas coleções na extensão VS Code. Os pipelines de agregação consistem em estágios que processam seus dados e retornam resultados calculados.
Os usos comuns para agregação incluem:
Agrupar dados por uma determinada expressão.
Calcular resultados com base em vários campos e armazenar esses resultados em um novo campo.
Filtrar dados para retornar um subconjunto que corresponda a um determinado critério.
Classificando dados.
Quando você executa uma agregação, a Extensão de VS Code produz utilmente os resultados diretamente dentro do Código do Visual Studio.
Abra um Playground para executar aggregation pipelines
Você pode executar agregação pipelines em um MongoDB Playground. Os MongoDB Playgrounds são ambientes JavaScript nos quais você pode criar protótipos de queries, aggregations e comandos do MongoDB com um recurso prático de destaque de sintaxe .
Para abrir um novo MongoDB Playground:
Encontre e execute o comando "Criar MongoDB Playground".
Use a barra de pesquisa Command Palette para pesquisar comandos. Todos os comandos relacionados à extensão de VS Code são precedidos por MongoDB:.
Quando você executa o comando MongoDB: Create MongoDB Playground, a extensão de VS Code abre um modelo de playground padrão pré-configurado com alguns comandos.
Observação
Para carregar novos Playgrounds sem o modelo, desabilite a configuração Use Default Template For Playground . Para saber mais sobre as configurações de extensão de VS Code , consulte Configurações de código do Visual Studio.
Criar e executar um pipeline de agregação
Para criar um pipeline de agregação , use a seguinte sintaxe no seu Playground:
db.<collection>.aggregate([ { <$stage1> }, { <$stage2> } ... ])
Para executar o Playground, pressione Play Button no canto superior direito da visualização do Playground. A extensão do VS Code divide seu Playground e exibe os resultados do seu Playground no painel Playground Results.json. Se você desativou a visualização dividida, a extensão do VS Code exibirá os resultados do seu Playground em uma nova aba.
Exemplo
Para executar este exemplo, comece com um Playground do MongoDB em branco, limpando o Playground modelo se ele estiver carregado.
Considere o seguinte playground que insere dados de amostra em uma collection e agrega esses dados:
use("test"); db.sales.insertMany([ { "_id" : 1, "item" : "abc", "price" : 10, "quantity" : 2, "date" : new Date("2014-03-01T08:00:00Z") }, { "_id" : 2, "item" : "jkl", "price" : 20, "quantity" : 1, "date" : new Date("2014-03-01T09:00:00Z") }, { "_id" : 3, "item" : "xyz", "price" : 5, "quantity" : 10, "date" : new Date("2014-03-15T09:00:00Z") }, { "_id" : 4, "item" : "xyz", "price" : 5, "quantity" : 20, "date" : new Date("2014-04-04T11:21:39.736Z") }, { "_id" : 5, "item" : "abc", "price" : 10, "quantity" : 10, "date" : new Date("2014-04-04T21:23:13.331Z") }, { "_id" : 6, "item" : "def", "price" : 7.5, "quantity": 5, "date" : new Date("2015-06-04T05:08:13Z") }, { "_id" : 7, "item" : "def", "price" : 7.5, "quantity": 10, "date" : new Date("2015-09-10T08:43:00Z") }, { "_id" : 8, "item" : "abc", "price" : 10, "quantity" : 5, "date" : new Date("2016-02-06T20:20:13Z") } ]) db.sales.aggregate([ { $match: { date: { $gte: new Date("2014-01-01"), $lt: new Date("2015-01-01") } } }, { $group: { _id: "$item", totalSaleAmount: { $sum: { $multiply: [ "$price", "$quantity" ] } } } } ])
Este pipeline:
Alterna para o banco de dados do
test
.Insere oito documentos na coleção
test.sales
.Realiza uma agregação em duas etapas:
- Primeira etapa
- O estágio
$match
filtra os dados de forma que somente as vendas do ano 2014 sejam passadas para o próximo estágio. - Segunda etapa
- O estágio
$group
agrupa os dados por item. O estágio adiciona um novo campo à saída chamadototalSaleAmount
, que é o ponto principal dosprice
equantity
do item.
Quando você pressiona Play Button, a extensão VS Code divide seu playground e gera o documento a seguir no painel Playground Results.json . Se você desativou a visualização dividida, a Extensão VS Code exibirá o seguinte documento em uma nova aba:
[ { _id: 'abc', totalSaleAmount: 120 }, { _id: 'jkl', totalSaleAmount: 20 }, { _id: 'xyz', totalSaleAmount: 150 } ]
Dica
Veja também:
Para saber mais sobre os estágios de agregação disponíveis, consulte Estágios do pipeline de agregação.
Para saber mais sobre os operadores de agregação disponíveis que você pode usar em estágios, consulte Operadores de pipeline de agregação.