Ir al contenido
Documentación

Manual de prueba — NoSqlStudio Watch

Una guía paso a paso para abrir, usar y validar la pantalla Watch de change streams en vivo.

Tiempo estimado: ~20 minutos
En este manual

Introducción

Una guía paso a paso para ayudarte a abrir, usar y validar la pantalla Watch — el monitor de change streams en vivo integrado en NoSqlStudio. Sigue del Paso 1 hasta el final, en orden. Cada paso te dice qué hacer y qué vas a ver.

Cómo leer este manual

Cada paso tiene:

  • Haz — la acción exacta (hacer clic, escribir, ejecutar tal comando).
  • Mira — qué debe ocurrir en pantalla. Este es tu “pasa / falla”.
  • Por qué — contexto adicional, solo cuando ayuda (sáltalo si vas con prisa).

Antes de empezar

Concepto

Qué es Watch

Watch muestra cada inserción, actualización, eliminación y otros cambios que suceden en tu base de datos en tiempo real, como tarjetas que se deslizan dentro de una línea de tiempo. Está construido sobre los change streams de MongoDB.

Atención

Watch requiere un replica set

Los change streams son una funcionalidad de replica set. Watch funciona con clústeres de MongoDB Atlas y con replica sets autoalojados, pero no con un servidor standalone. Apuntar Watch a un servidor standalone se cubre en el Paso 30.

Vas a necesitar:

  1. 1Un replica set MongoDB conectado — un clúster Atlas o un replica set autoalojado.
  2. 2Una segunda pestaña donde puedas ejecutar comandos en el shell — el Scratchpad o la pestaña del Mongo Shell — para generar cambios.
  3. 3En los comandos de shell de abajo, reemplaza <database> y <collection> con nombres propios tuyos. Ejecuta siempre use <database> primero para que el comando corra contra la base correcta.

Tiempo estimado para el recorrido completo: ~20 minutos.

Etapa 1

Tu primer cambio observado

Abre Watch y confirma que un único cambio llega a la línea de tiempo.

Paso 1

Conéctate a un replica set

Haz

Conecta NoSqlStudio a un replica set MongoDB o clúster Atlas, usando tu connection string — por ejemplo mongodb+srv://<user>:<password>@<cluster-host>/.

Mira

La conexión se abre y aparece en la barra lateral.

Paso 2

Abre Watch Deployment

Haz

En la barra de herramientas, elige Monitoring ▼ → Watch for Changes → Watch Deployment.

Mira

Se abre una nueva pestaña con una cabecera 🎥, una píldora de estado LIVE verde pulsante y un mini-mapa del clúster que muestra el nodo PRIMARY en verde junto a sus secondaries.

Paso 3

Inserta un documento de prueba

Haz

En otra pestaña (el Scratchpad), selecciona una base de datos e inserta un documento. Ejecuta el comando use primero:

js·2 linhas
use <database>
db.test_cw.insertOne({ hello: "test1", n: 1 })
Paso 4

Mira llegar el cambio

Haz

Vuelve a la pestaña de Watch.

Mira

En aproximadamente un segundo, una tarjeta verde 🟢 Insert para <database>.test_cw se desliza hacia la parte superior de la línea de tiempo.

Por qué

Este es el núcleo de la herramienta — el stream en vivo está conectado y entregando los cambios. ✅

Etapa 2

Filtrar y exportar

Paso 5

Genera tráfico en varias colecciones

Haz

Ejecuta algunos inserts en distintas colecciones:

js·4 linhas
use <database>
db.orders.insertOne({ item: "book" })
db.users.insertOne({ name: "Ana" })
db.test_cw.insertOne({ n: 1 })
Mira

Se desliza una tarjeta por cada insert.

Paso 6

Filtra la línea de tiempo

Haz

Escribe el nombre de una colección (por ejemplo orders) en el campo 🔍 filter de la cabecera.

Mira

Solo permanecen visibles los eventos cuyo namespace coincide con el texto. Limpia el campo para volver a mostrar todo.

Paso 7

Exporta los eventos

Haz

Con el filtro limpio, haz clic en 📥 Export.

Mira

Los eventos visibles se guardan como un archivo .ndjson en tu carpeta de Descargas.

Concepto

NDJSON. Un documento JSON por línea — el formato natural para un stream de eventos, fácil de reimportar o de hacer grep.

Etapa 3

Grabación y replay

Paso 8

Inicia una grabación

Haz

En el panel derecho, encuentra la tarjeta 🎬 Recording y activa el toggle.

Mira

La tarjeta cambia al estado de grabación.

Paso 9

Genera eventos mientras grabas

Haz

Ejecuta algunos cambios en otra pestaña:

js·4 linhas
use <database>
db.test_cw.insertOne({ n: 1 })
db.test_cw.insertOne({ n: 2 })
db.test_cw.insertOne({ n: 3 })
Mira

La tarjeta muestra un contador en vivo, como recording • 3 events.

Paso 10

Detén la grabación

Haz

Desactiva el toggle 🎬 Recording.

Mira

La grabación se descarga automáticamente como un archivo .ndjson.

Paso 11

Reproduce una grabación desde un archivo

Haz

Haz clic en 📂 Open recording y selecciona el archivo .ndjson que acabas de guardar.

Mira

La cabecera recibe un distintivo morado 📂 replay (file) y los eventos grabados vuelven a la línea de tiempo.

Paso 12

Sal del modo replay

Haz

Haz clic en el del distintivo morado de replay.

Mira

El modo replay termina y el stream en vivo se reanuda.

Paso 13

Reproduce el pasado reciente

Haz

En la tarjeta ⏪ Replay, haz clic en Go back 5 minutes.

Mira

El stream se reabre comenzando unos minutos en el pasado, así ves los cambios que ya ocurrieron.

Atención

Esto solo funciona si el oplog del clúster aún conserva ese historial. En un clúster con mucho tráfico, la ventana del oplog puede ser menor a 5 minutos.

Etapa 4

Webhooks y alertas

Watch puede reenviar cambios a una URL externa y disparar alertas de escritorio sobre una regla.

Paso 14

Consigue una URL de webhook de prueba

Haz

Abre https://webhook.site en tu navegador y copia la URL única que te entrega (formato https://webhook.site/<uuid>).

Paso 15

Agrega el webhook

Haz

En la tarjeta 📡 Webhooks, pega la URL y haz clic en + Add.

Mira

El webhook aparece en la lista.

Paso 16

Configura el webhook

Haz

Haz clic en el ⚙ del webhook para expandir sus ajustes. Cambia el método HTTP a PUT, agrega una cabecera Authorization con el valor Bearer xxx y, en los chips de evento, selecciona solo 🔴 Delete.

Mira

El webhook ahora está configurado para disparar solo en deletes, como una solicitud PUT con tu cabecera.

Paso 17

Insert — no se reenvía nada

Haz

Ejecuta un insert:

js·2 linhas
use <database>
db.test_cw.insertOne({ foo: 1 })
Mira

webhook.site no recibe nada — el webhook está filtrado solo a deletes.

Paso 18

Delete — el webhook dispara

Haz

Ejecuta un delete:

js·2 linhas
use <database>
db.test_cw.deleteOne({ foo: 1 })
Mira

webhook.site recibe una solicitud PUT con la cabecera Authorization: Bearer xxx y el evento del cambio como EJSON en el cuerpo. La tarjeta muestra ✓ 1 sent.

Paso 19

Crea una alerta

Haz

En la tarjeta 🔔 Alerts, dale un nombre a la alerta (por ejemplo Deleted test), define el patrón de namespace como una expresión regular — ^.*\.test_cw$ — y haz clic en + Create alert.

Mira

La alerta aparece en la lista.

Paso 20

Acota la alerta

Haz

Haz clic en el ⚙ de la alerta y, en los chips de evento, selecciona solo 🔴 Delete.

Mira

La alerta ahora dispara solo en deletes que coinciden con el patrón.

Paso 21

Dispara la alerta

Haz

Ejecuta otro delete:

js·2 linhas
use <database>
db.test_cw.deleteOne({ n: 1 })
Mira

La primera vez, el sistema pide permiso de notificación — concédelo una vez. Luego aparece una notificación nativa de escritorio, suena un sonido y el historial de la alerta registra el hit.

Concepto

La grabación no necesita estar activa para que las alertas funcionen — las alertas se evalúan de forma independiente, y su historial se mantiene por separado.

Etapa 5

Sonido y el mini-mapa del clúster

Paso 22

Activa el sonido

Haz

En la cabecera, haz clic en 🔔 Sound off para que pase a Sound on.

Paso 23

Escucha un insert

Haz

Ejecuta un insert:

js·2 linhas
use <database>
db.test_cw.insertOne({ n: 10 })
Mira

Suena un pitido corto y agudo.

Paso 24

Escucha un delete

Haz

Ejecuta un delete:

js·2 linhas
use <database>
db.test_cw.deleteOne({ n: 10 })
Mira

Suena un pitido grave — un tono distinto al del insert, así puedes distinguir los cambios de oído.

Paso 25

Mira pulsar el mini-mapa

Mira

En el mini-mapa del clúster, el nodo verde PRIMARY pulsa con un anillo que se expande cada vez que llega un evento.

Etapa 6

Comportamientos y casos límite

Paso 26

Persistencia

Haz

Cierra la pestaña de Watch (el del título de la pestaña) y vuelve a abrirla desde el menú.

Mira

Tus webhooks, alertas, ajuste de sonido y tamaño de buffer siguen todos ahí.

Paso 27

Refresca la lista de bases

Haz

Crea una nueva base de datos en otra pestaña, luego haz clic en 🔄 Refresh en la cabecera de Watch.

Mira

La nueva base aparece en el desplegable de alcance.

Paso 28

Tamaño de buffer

Haz

Escribe 50 en el campo Buffer de la cabecera.

Mira

Solo quedan visibles los 50 eventos más recientes — las tarjetas más antiguas se descartan.

Paso 29

Limpieza al cambiar de alcance

Haz

Con un stream corriendo en el alcance 🌐 Cluster, cambia a 🗄 una sola base.

Mira

La línea de tiempo se limpia y el stream se reinicia para el nuevo alcance.

Paso 30

Error humanizado en un standalone

Haz

Conéctate a un servidor MongoDB standalone (no a un replica set) e intenta Watch Deployment.

Mira

Un mensaje claro y amable explica que Watch requiere un replica set — no un error crudo del servidor como “$changeStream stage is only supported…”.

Etapa 7

El menú nativo Tools

Paso 31

Abre Watch desde el menú Tools

Haz

Usa el menú nativo: Tools → Change Watcher → Watch Deployment (atajo de teclado Ctrl+Alt+W).

Mira

La pestaña de Watch se abre, igual que desde la barra de herramientas.

Atención

El menú nativo se construye al iniciar la app. Después de una recarga in-app (Ctrl+R) el menú puede quedar desactualizado — reinicia NoSqlStudio por completo para ver los cambios del menú.

Limpieza (cuando termines)

Haz

Detén el stream con el botón Stop de la cabecera, luego elimina la colección de prueba:

js·2 linhas
use <database>
db.test_cw.drop()
Mira

El stream se detiene y la colección de prueba desaparece.

Resumen de lo que validaste

EtapaFuncionalidad
1Abrir Watch y ver un cambio en vivo llegar a la línea de tiempo
2Filtrar la línea de tiempo y exportar eventos como NDJSON
3Grabar eventos, reproducir desde un archivo y reproducir el pasado reciente
4Webhooks (método, cabeceras, filtro de eventos) y alertas de escritorio
5Señales sonoras por tipo de evento y el pulso del mini-mapa del clúster
6Persistencia, refresh, buffer, limpieza al cambiar de alcance, errores humanizados
7La entrada del menú nativo Tools y su atajo
Si cada paso dio el “Mira” esperado, la pantalla Watch está 100% validada. Anota el número del paso de cualquier discrepancia para que podamos corregirlo.