currentOp (Operações Ativas)
Última atualização: 2026-10-09
currentOp (Operações Ativas)
currentOp lista operações atualmente em execução, para diagnosticar consultas lentas e trabalhos de longa duração (escritas bloqueadas, transações abertas). Cada entrada expõe opid, client, ns, secs_running e command; combine com db.killOp(opid) para encerrar. Chame db.currentOp({ active: true }) diretamente no mongosh.
| Categoria | Monitoramento e Diagnóstico |
|---|---|
| Versão do MongoDB | 1.0+ |
| Idioma do Exemplo | mongosh (Shell) |
📝 Sintaxe
db.currentOp()
db.currentOp({ active: true, secs_running: { $gt: 5 } })
db.killOp(<opid>)
⚙️ Parâmetros
| active | Retorna apenas operações em que active é true. |
|---|---|
| secs_running | Filtra por segundos em execução (por exemplo $gt: 5). |
Retorno:Retorna uma matriz inprog com um documento de detalhe por operação
▶ Exemplo
Execute os comandos abaixo no seu mongosh local (requer um mongod em execução):
// currentOp: encontra operações rodando há mais de 5 segundos
db.currentOp({ active: true, secs_running: { $gt: 5 } })
// encerre com o opid
// db.killOp(12345)
Saída:
{ inprog: [ { opid: 12345, secs_running: 12, ns: 'shop.orders' } ], ok: 1 }
📌 Notas
- O pipeline de agregação $currentOp filtra com precisão (namespace, comando, etc.)
- killOp aborta a operação, mas o rollback da transação ainda pode levar tempo
- Exige privilégios inprog como clusterMonitor
🏷️ Tags Relacionados
💡 Casos Relacionados
📚 Tutoriais Relacionados
❓ Perguntas Frequentes
QComo encontro consultas lentas?
AExecute db.currentOp({ active: true, secs_running: { $gt: 5 } }) e ordene por secs_running.
QComo mato uma operação travada?
APegue o opid de currentOp e execute db.killOp(opid).
QO currentOp exige privilégios?
ASim — privilégios inprog/killop; usuários comuns só veem suas próprias operações.