$percentile (Acumulador de Percentil)
Última atualização: 2026-10-09
$percentile (Acumulador de Percentil)
$percentile é um acumulador que retorna os valores em determinados percentis (0 a 100) de um campo dentro de um grupo, disponível desde o MongoDB 7.0. O argumento p aceita um único valor ou um array. method suporta approximate (padrão, mais rápido) e exact. Comum para latências p95/p99 e quantis salariais.
| Categoria | Acumuladores |
|---|---|
| Versão do MongoDB | 7.0+ |
| Idioma do Exemplo | mongosh (Shell) |
📝 Sintaxe
{ $group: { _id: <key>, pct: { $percentile: { input: "$field", p: [ <percentile> ], method: "approximate" } } } }
Retorno:Valores nos percentis solicitados (matriz de entrada, matriz de saída)
▶ Exemplo
Execute os comandos abaixo no seu mongosh local (requer um mongod em execução):
// $percentile: latência p50, p95 e p99 por serviço
db.latency.aggregate([
{ $group: { _id: '$service', pct: { $percentile: { input: '$ms', p: [50, 95, 99], method: 'approximate' } } } }
])
Saída:
{ "_id": "api", "pct": [12, 45, 80] }
📌 Notas
- Exige MongoDB 7.0 ou posterior
- p deve estar entre 0 e 100
- Valores não numéricos na entrada são ignorados
🏷️ Tags Relacionados
💡 Casos Relacionados
Mais casos práticos em breve.
📚 Tutoriais Relacionados
❓ Perguntas Frequentes
QComo calculo o p95?
APasse p: [95] para obter esse quantil, comumente usado para monitoramento de latência.
QQuão preciso é o approximate?
AOs erros são pequenos em conjuntos grandes e é rápido — suficiente para monitoramento; use exact quando a precisão importar.
QQual é a diferença entre $percentile e $median?
A$median é fixo no percentil 50; $percentile cobre qualquer percentil.