maxTimeMS() (Definir Limite de Tempo)
Última atualização: 2026-10-09
maxTimeMS() (Definir Limite de Tempo)
maxTimeMS() limita por quanto tempo uma operação de cursor pode rodar, em milissegundos: `db.users.find().maxTimeMS(5000)`. Após o limite, o servidor aborta a operação e lança erro — uma proteção contra consultas lentas monopolizando recursos. É um timeout rígido do lado do servidor, distinto de timeouts de socket do driver.
| Categoria | Cursor |
|---|---|
| Versão do MongoDB | 1.0+ |
| Idioma do Exemplo | mongosh (Shell) |
📝 Sintaxe
db.<collection>.find(<filter>).maxTimeMS(<ms>)
⚙️ Parâmetros
| milissegundos | Tempo máximo de execução em milissegundos. |
|---|
Retorno:O cursor com o limite de tempo aplicado (encadeável).
▶ Exemplo
Execute os comandos abaixo no seu mongosh local (requer um mongod em execução):
// maxTimeMS: limita a consulta a 5 segundos
const result = db.users.find()
.maxTimeMS(5000)
.toArray()
result.length
Saída:
1000
📌 Notas
- O servidor aborta a operação e lança erro no timeout
- A unidade é milissegundos — 5000 significa cinco segundos
- Aplica-se também a agregações e escritas do tipo findAndModify
🏷️ Tags Relacionados
💡 Casos Relacionados
Mais casos práticos em breve.
📚 Tutoriais Relacionados
❓ Perguntas Frequentes
QO que acontece quando maxTimeMS é excedido?
AO servidor mata a operação e lança um erro de timeout — capture-o com try/catch.
QQual unidade o maxTimeMS usa?
AMilissegundos. maxTimeMS(1000) significa no máximo um segundo.
QO maxTimeMS é o mesmo que um timeout do driver?
ANão — maxTimeMS é um limite rígido do lado do servidor que mata a operação; um timeout do driver apenas interrompe a espera do cliente.