$bucket (Balde)

Última atualização: 2026-10-09

$bucket (Balde)

$bucket agrupa documentos em baldes definidos por um array de limites em ordem crescente, emitindo um documento { _id: limiteInferior, count: N } por balde, com acumuladores de saída opcionais. Documentos fora de todos os limites caem no balde padrão. Ideal para histogramas e estatísticas de intervalos.

CategoriaAgrupamento e Janela
Versão do MongoDB1.0+
Idioma do Exemplomongosh (Shell)

📝 Sintaxe

{ $bucket: { groupBy: <expressão>, boundaries: [ <limiteInferior>, ... ], default: <valor>, output: { <campo>: <acumulador> } } }

⚙️ Parâmetros

groupByExpressão que determina em qual bucket um documento se enquadra.
boundariesMatriz de limites de bucket em ordem crescente, pelo menos dois valores.
defaultNome do bucket para documentos fora de todos os limites; documentos omitidos são descartados.
outputAcumuladores calculados por bucket, por exemplo $avg ou $sum.

Retorno:Um documento { _id, count, ... } por bucket

▶ Exemplo

Execute os comandos abaixo no seu mongosh local (requer um mongod em execução):

// $bucket: coloca pontuações em intervalos, média por balde
db.scores.aggregate([
  { $bucket: {
    groupBy: '$score',
    boundaries: [0, 60, 80, 100],
    default: 'other',
    output: { avg: { $avg: '$score' } }
  } }
])

Saída:

{ "_id": 0, "count": 12, "avg": 35.5 }
{ "_id": 60, "count": 20, "avg": 71.2 }

📌 Notas

📚 Tutoriais Relacionados

❓ Perguntas Frequentes

QQual é a diferença entre $bucket e $bucketAuto?
A$bucket recebe limites explícitos; $bucketAuto divide os baldes automaticamente para contagens uniformes.
QOs intervalos são semi-abertos?
ASim: os valores caem em [boundaries[i], boundaries[i+1]); o último limite é um teto superior exclusivo.
QO balde padrão pode ser omitido?
ASim; documentos fora de todos os baldes são então descartados.
Web-Tutorial.com

Equipe Técnica Web-Tutorial

Uma plataforma de tutoriais mantida por diversos desenvolvedores. Cada tutorial é escrito e revisado por profissionais da área correspondente. Trabalhamos para manter nosso conteúdo preciso e confiável — se encontrar algum problema, avise-nos.

100%