tailable() (Cursor Tailable)

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

tailable() (Cursor Tailable)

tailable() marca um cursor como tailable, ex.: `db.logs.find().tailable()`. Em vez de fechar quando os dados acabam, um cursor tailable continua esperando novos documentos — usado para acompanhar logs e observar inserções antes da existência dos Change Streams. Ele exige uma coleção capped; em replica sets combina bem com a opção awaitData.

CategoriaCursor
Versão do MongoDB1.0+
Idioma do Exemplomongosh (Shell)

📝 Sintaxe

db.<collection>.find(<filter>).tailable({ awaitData: <bool> })

⚙️ Parâmetros

awaitDataOpcional. true aguarda novos dados em vez de retornar imediatamente.

Retorno:O cursor marcado como tailable (encadeável).

▶ Exemplo

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

// tailable: continua lendo novas entradas de log
const cursor = db.logs.find()
  .tailable({ awaitData: true })
while (cursor.hasNext()) {
  print(cursor.next().msg)
}

Saída:

login ok
order created
payment received

📌 Notas

Mais casos práticos em breve.

📚 Tutoriais Relacionados

❓ Perguntas Frequentes

QPara que servem os cursors tailable?
AEles continuam lendo novos dados de coleções capped — acompanhamento de logs e fluxos de monitoramento em tempo real — sem fechar no fim.
QQuais são as limitações de tailable?
AApenas coleções capped; novos projetos devem usar Change Streams de watch(), que são mais ricos e funcionam em coleções normais.
QComo tailable difere de watch?
Atailable() faz polling de novos dados em coleções capped; watch() usa o Change Stream do oplog, suportando coleções normais e mais tipos de eventos.
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%