noCursorTimeout() (Desativar Timeout de Cursor)
Última atualização: 2026-10-09
noCursorTimeout() (Desativar Timeout de Cursor)
noCursorTimeout() desativa o timeout de inatividade do lado do servidor de um cursor: `db.users.find().noCursorTimeout()`. Por padrão, cursors inativos por mais de dez minutos são coletados; com esta flag um cursor pode viver muito — útil para consumidores lentos de grandes lotes. Atenção: cursors de longa duração seguram recursos do servidor, então feche-os com close() manualmente ao terminar para evitar vazamentos.
| Categoria | Cursor |
|---|---|
| Versão do MongoDB | 1.0+ |
| Idioma do Exemplo | mongosh (Shell) |
📝 Sintaxe
db.<collection>.find(<filter>).noCursorTimeout()
Retorno:O cursor com o timeout desativado (encadeável).
▶ Exemplo
Execute os comandos abaixo no seu mongosh local (requer um mongod em execução):
// noCursorTimeout: caminhada de longa duração em uma coleção grande
const cursor = db.logs.find().noCursorTimeout().batchSize(100)
cursor.forEach(doc => processDoc(doc))
cursor.close()
Saída:
(iteração concluída, sem saída)
📌 Notas
- O timeout de inatividade padrão é dez minutos; noCursorTimeout() o cancela
- Cursors de longa duração seguram memória do servidor — sempre feche com close()
- Combine com batchSize() para controlar os tamanhos de lote
🏷️ Tags Relacionados
💡 Casos Relacionados
Mais casos práticos em breve.
📚 Tutoriais Relacionados
❓ Perguntas Frequentes
QQual é o timeout padrão de cursor?
AO servidor coleta cursors inativos após dez minutos; noCursorTimeout() desativa isso.
QCom o que devo me preocupar ao usar noCursorTimeout?
ASempre feche o cursor com close() ao terminar ou ao sair cedo, ou os recursos do servidor vazarão.
QQuando preciso de noCursorTimeout?
AEm trabalhos em lote lentos que podem rodar mais de dez minutos por cursor, como limpar milhões de documentos um a um.