Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:
MongoDB vCore
O $group
estágio de agregação agrupa documentos por expressões de identificador especificadas e aplica expressões de acumulador para criar campos computados para cada grupo. Esta etapa é essencial para operações de agregação e sumarização de dados.
Sintaxe
A sintaxe para o estágio é a $group
seguinte:
{
$group: {
_id: <expression>,
<field1>: { <accumulator1>: <expression1> },
<field2>: { <accumulator2>: <expression2> },
...
}
}
Parâmetros
Descrição | |
---|---|
_id |
Obrigatório A expressão para agrupar por. Use null para calcular valores acumulados para todos os documentos de entrada. |
field |
Opcional. Calculado usando operadores de acumuladores como $sum, $avg, $max, $min, $count, etc. |
Exemplo
Exemplo 1: Agrupar por cidade e analisar a distribuição do pessoal
O exemplo agrupa lojas por cidade e analisa os padrões de pessoal em diferentes locais.
db.stores.aggregate([
{
$group: {
_id: "$city",
totalFullTimeStaff: { $sum: "$staff.employeeCount.fullTime" },
totalPartTimeStaff: { $sum: "$staff.employeeCount.partTime" },
avgFullTimeStaff: { $avg: "$staff.employeeCount.fullTime" },
storesInCity: { $count: {} }
}
},
{
$project: {
city: "$_id",
totalFullTimeStaff: 1,
totalPartTimeStaff: 1,
avgFullTimeStaff: { $round: ["$avgFullTimeStaff", 1] },
storesInCity: 1,
fullTimeRatio: {
$round: [
{ $divide: ["$totalFullTimeStaff", { $add: ["$totalFullTimeStaff", "$totalPartTimeStaff"] }] },
2
]
}
}
},
{ $limit : 2}
])
A consulta retorna a análise de pessoal por local da cidade.
{
"_id": "New Ellsworth",
"totalFullTimeStaff": 11,
"totalPartTimeStaff": 1,
"avgFullTimeStaff": 11,
"storesInCity": 1,
"city": "New Ellsworth",
"fullTimeRatio": 0.92
},
{
"_id": "Jalonborough",
"totalFullTimeStaff": 4,
"totalPartTimeStaff": 1,
"avgFullTimeStaff": 4,
"storesInCity": 1,
"city": "Jalonborough",
"fullTimeRatio": 0.8
}
Conteúdo relacionado
- Opções de revisão para migrar do MongoDB para o Azure Cosmos DB para MongoDB (vCore)
- Leia mais sobre Compatibilidade de recursos com o MongoDB