Para agentes de IA: um índice de documentação está disponível em https://www.mongodb.com/pt-br/docs/llms.txt — as versões de markdown de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL.
See how MongoDB 9.0 delivers up to 2x higher throughput.
MongoDB Branding Shape
Register now >
Menu Docs

$push (operador acumulador )

$push

Retorna uma array de todos os valores resultantes da aplicação de uma expressão a cada documento em um grupo.

O acumulador $push está disponível nos seguintes estágios:

Observação

Desambiguação

Esta página descreve $push quando usado como acumulador. Os acumuladores retornam um valor agregado em um grupo de documentos de entrada.

Você também pode usar $push nestes outros contextos:

{ $push: <expression> }

Para mais informações sobre expressões, consulte Expressões.

Quando você usa $push como acumulador, a ordem dos documentos que chegam ao pipeline determina a ordem dos documentos na array de saída. Para garantir um pedido definido, coloque um estágio $sort antes do estágio $group.

Os exemplos nesta página usam dados do conjunto de dados sample_mflix. Para obter detalhes sobre como carregar esse conjunto de dados em sua implantação autogerenciada do MongoDB , consulte Carregar o conjunto de dados de amostra. Se você fez modificações nos bancos de dados de amostra, talvez seja necessário descartar e recriar os bancos de dados para executar os exemplos nesta página.

A operação a seguir agrupa filmes por diretor e usa o acumulador $push para coletar o gênero principal de cada filme dirigido por esse diretor.

db.movies.aggregate( [
{
$match: {
year: { $gte: 2010, $lte: 2015 },
genres: { $exists: true, $ne: [] },
directors: { $exists: true, $ne: [] }
}
},
{
$unwind: "$directors"
},
{
$group: {
_id: "$directors",
genres: { $push: { $first: "$genres" } }
}
},
{
$sort: { _id: 1 }
},
{
$limit: 5
}
] )

O pipeline anterior:

  • Usa $match para filtrar filmes de 2010-2015 que possuem informações de gênero e diretor .

  • Usa $unwind para criar um documento separado para cada diretor na array directors.

  • Agrupa os documentos resultantes por diretor e usa $push para coletar o gênero principal de cada filme.

  • Classifica os resultados por nome do diretor em ordem alfabética.

  • Limita a saída a cinco diretores.

Na saída, A.R. Murugadoss tem Action listado duas vezes porque direcionou dois filmes com Action como o gênero principal. Isso demonstra que $push inclui valores duplicados, diferentemente de $addToSet, que retorna uma array de valores únicos.