Introdução
Um guia passo a passo para te ajudar a abrir, usar e validar a tela Watch — o monitor de change streams ao vivo embutido no NoSqlStudio. Siga do Passo 1 até o fim, em ordem. Cada passo diz o que fazer e o que você vai ver.
Como ler este manual
Cada passo tem:
- Faça — a ação exata (clicar, digitar, rodar tal comando).
- Veja — o que deve acontecer na tela. Esse é o seu “passou / falhou”.
- Por quê — contexto adicional, só quando ajuda (pule se estiver com pressa).
Antes de começar
Conceito
O que é o Watch
O Watch mostra cada inserção, atualização, exclusão e outras mudanças que acontecem no seu banco de dados em tempo real, como cards que deslizam dentro de uma linha do tempo. Ele é construído em cima dos change streams do MongoDB.
Atenção
O Watch exige um replica set
Change streams são um recurso de replica set. O Watch funciona com clusters do MongoDB Atlas e com replica sets self-hosted, mas não com um servidor standalone. Apontar o Watch para um servidor standalone é coberto no Passo 30.
Você vai precisar de:
- 1Um replica set MongoDB conectado — um cluster Atlas ou um replica set self-hosted.
- 2Uma segunda aba onde você consiga rodar comandos no shell — o Scratchpad ou a aba do Mongo Shell — para gerar mudanças.
- 3Nos comandos de shell abaixo, substitua
<database>e<collection>por nomes próprios seus. Sempre rodeuse <database>primeiro para que o comando seja executado no banco certo.
Tempo estimado para o walkthrough completo: ~20 minutos.
Sua primeira mudança monitorada
Abra o Watch e confirme que uma única mudança chega à linha do tempo.
Conecte-se a um replica set
Conecte o NoSqlStudio a um replica set MongoDB ou cluster Atlas, usando sua connection string — por exemplo mongodb+srv://<user>:<password>@<cluster-host>/.
A conexão abre e aparece na barra lateral.
Abra o Watch Deployment
Na barra de ferramentas, escolha Monitoring ▼ → Watch for Changes → Watch Deployment.
Uma nova aba abre com um cabeçalho 🎥, uma pílula de status LIVE verde pulsando e um mini-mapa do cluster mostrando o nó PRIMARY em verde ao lado dos seus secondaries.
Insira um documento de teste
Em outra aba (o Scratchpad), selecione um banco e insira um documento. Rode o comando use primeiro:
use <database>
db.test_cw.insertOne({ hello: "test1", n: 1 })Veja a mudança chegando
Volte para a aba do Watch.
Em cerca de um segundo, um card verde 🟢 Insert para <database>.test_cw desliza para o topo da linha do tempo.
Esse é o coração da ferramenta — o stream ao vivo está conectado e entregando as mudanças. ✅
Filtrando e exportando
Gere tráfego em várias coleções
Rode alguns inserts em diferentes coleções:
use <database>
db.orders.insertOne({ item: "book" })
db.users.insertOne({ name: "Ana" })
db.test_cw.insertOne({ n: 1 })Um card desliza para cada insert.
Filtre a linha do tempo
Digite o nome de uma coleção (por exemplo orders) no campo 🔍 filter no cabeçalho.
Só os eventos cujo namespace casa com o texto continuam visíveis. Limpe o campo para mostrar tudo de novo.
Exporte os eventos
Com o filtro limpo, clique em 📥 Export.
Os eventos visíveis são salvos como um arquivo .ndjson na sua pasta de Downloads.
Conceito
NDJSON. Um documento JSON por linha — o formato natural para um stream de eventos, fácil de reimportar ou de fazer grep.
Gravação e replay
Inicie uma gravação
No painel da direita, encontre o card 🎬 Recording e ligue o toggle.
O card muda para o estado de gravação.
Gere eventos enquanto grava
Rode algumas mudanças em outra aba:
use <database>
db.test_cw.insertOne({ n: 1 })
db.test_cw.insertOne({ n: 2 })
db.test_cw.insertOne({ n: 3 })O card mostra um contador ao vivo, como recording • 3 events.
Pare a gravação
Desligue o toggle 🎬 Recording.
A gravação é baixada automaticamente como um arquivo .ndjson.
Reproduza uma gravação a partir de um arquivo
Clique em 📂 Open recording e selecione o arquivo .ndjson que você acabou de salvar.
O cabeçalho ganha um badge roxo 📂 replay (file) e os eventos gravados voltam para a linha do tempo.
Saia do modo replay
Clique no ✕ do badge roxo de replay.
O modo replay termina e o stream ao vivo é retomado.
Reproduza o passado recente
No card ⏪ Replay, clique em Go back 5 minutes.
O stream reabre começando alguns minutos no passado, então você vê as mudanças que já aconteceram.
Atenção
Isso só funciona se o oplog do cluster ainda guardar esse histórico. Em um cluster movimentado, a janela do oplog pode ser menor que 5 minutos.
Webhooks e alertas
O Watch pode encaminhar mudanças para uma URL externa e disparar alertas de desktop com base em uma regra.
Pegue uma URL de webhook de teste
Abra https://webhook.site no seu navegador e copie a URL única que ele te dá (formato https://webhook.site/<uuid>).
Adicione o webhook
No card 📡 Webhooks, cole a URL e clique em + Add.
O webhook aparece na lista.
Configure o webhook
Clique no ⚙ do webhook para expandir suas configurações. Mude o método HTTP para PUT, adicione um header Authorization com o valor Bearer xxx e, nos chips de evento, selecione apenas 🔴 Delete.
O webhook agora está configurado para disparar somente em deletes, como uma requisição PUT com o seu header.
Insert — nada é encaminhado
Rode um insert:
use <database>
db.test_cw.insertOne({ foo: 1 })O webhook.site recebe nada — o webhook está filtrado para apenas deletes.
Delete — o webhook dispara
Rode um delete:
use <database>
db.test_cw.deleteOne({ foo: 1 })O webhook.site recebe uma requisição PUT com o header Authorization: Bearer xxx e o evento da mudança como EJSON no corpo. O card mostra ✓ 1 sent.
Crie um alerta
No card 🔔 Alerts, dê um nome ao alerta (por exemplo Deleted test), defina o padrão de namespace como uma expressão regular — ^.*\.test_cw$ — e clique em + Create alert.
O alerta aparece na lista.
Restrinja o alerta
Clique no ⚙ do alerta e, nos chips de evento, selecione apenas 🔴 Delete.
O alerta agora dispara somente em deletes que casam com o padrão.
Dispare o alerta
Rode outro delete:
use <database>
db.test_cw.deleteOne({ n: 1 })Na primeira vez, o sistema pede permissão de notificação — autorize uma vez. Em seguida, uma notificação nativa do desktop aparece, um som toca, e o histórico do alerta registra o hit.
Conceito
A gravação não precisa estar ligada para os alertas funcionarem — alertas são avaliados independentemente, e o histórico deles é mantido por si só.
Som e o mini-mapa do cluster
Ligue o som
No cabeçalho, clique em 🔔 Sound off para que vire Sound on.
Ouça um insert
Rode um insert:
use <database>
db.test_cw.insertOne({ n: 10 })Um bipe curto e agudo toca.
Ouça um delete
Rode um delete:
use <database>
db.test_cw.deleteOne({ n: 10 })Um bipe grave toca — uma altura diferente da do insert, então você consegue distinguir as mudanças de ouvido.
Veja o mini-mapa pulsar
No mini-mapa do cluster, o nó verde PRIMARY pulsa com um anel se expandindo toda vez que um evento chega.
Comportamentos e casos de borda
Persistência
Feche a aba do Watch (o ✕ no título da aba) e reabra pelo menu.
Seus webhooks, alertas, configuração de som e tamanho de buffer continuam todos lá.
Atualize a lista de bancos
Crie um novo banco em outra aba, depois clique em 🔄 Refresh no cabeçalho do Watch.
O novo banco aparece no dropdown de escopo.
Tamanho do buffer
Digite 50 no campo Buffer no cabeçalho.
Só os 50 eventos mais recentes ficam visíveis — os cards mais antigos somem.
Limpeza ao trocar de escopo
Com um stream rodando no escopo 🌐 Cluster, troque para 🗄 um único banco.
A linha do tempo limpa e o stream reinicia para o novo escopo.
Erro humanizado em um standalone
Conecte-se a um servidor MongoDB standalone (não a um replica set) e tente o Watch Deployment.
Uma mensagem clara e amigável explica que o Watch exige um replica set — não um erro cru do servidor como “$changeStream stage is only supported…”.
O menu nativo Tools
Abra o Watch pelo menu Tools
Use o menu nativo: Tools → Change Watcher → Watch Deployment (atalho de teclado Ctrl+Alt+W).
A aba do Watch abre, exatamente como pela barra de ferramentas.
Atenção
O menu nativo é montado quando o app inicia. Depois de um reload in-app (Ctrl+R), o menu pode ficar desatualizado — reinicie o NoSqlStudio por completo para ver mudanças no menu.
Limpeza (quando terminar)
Pare o stream com o botão Stop no cabeçalho, depois apague a coleção de teste:
use <database>
db.test_cw.drop()O stream é parado e a coleção de teste some.
Resumo do que você validou
| Etapa | Recurso |
|---|---|
| 1 | Abrir o Watch e ver uma mudança ao vivo chegar à linha do tempo |
| 2 | Filtrar a linha do tempo e exportar eventos como NDJSON |
| 3 | Gravar eventos, reproduzir a partir de um arquivo, e reproduzir o passado recente |
| 4 | Webhooks (método, headers, filtro de eventos) e alertas de desktop |
| 5 | Sinais sonoros por tipo de evento e a pulsação do mini-mapa do cluster |
| 6 | Persistência, refresh, buffer, limpeza ao trocar de escopo, erros humanizados |
| 7 | A entrada no menu nativo Tools e seu atalho |