Skip to content
Documentation

Test Manual — NoSqlStudio Watch

A step-by-step guide to open, use, and validate the Watch live change-stream screen.

Estimated time: ~20 minutes
In this manual

Introduction

A step-by-step guide to help you open, use, and validate the Watch screen — the live change-stream monitor built into NoSqlStudio. Follow from Step 1 to the end, in order. Each step tells you what to do and what you will see.

How to read this manual

Each step has:

  • Do — the exact action (click, type, run such-and-such command).
  • See — what should happen on screen. This is your “pass / fail”.
  • Why — extra context, only when it helps (skip it if you're in a hurry).

Before you start

Concept

What Watch is

Watch shows every insert, update, delete and other change happening on your database in real time, as cards that slide into a timeline. It is built on MongoDB change streams.

Heads-up

Watch needs a replica set

Change streams are a replica-set feature. Watch works with MongoDB Atlas clusters and with self-hosted replica sets, but not with a standalone server. Pointing Watch at a standalone server is covered in Step 30.

You will need:

  1. 1A connected MongoDB replica set — an Atlas cluster or a self-hosted replica set.
  2. 2A second tab where you can run shell commands — the Scratchpad or the Mongo Shell tab — to generate changes.
  3. 3In the shell commands below, replace <database> and <collection> with names of your own. Always run use <database> first so the command runs against the right database.

Estimated time for the full walkthrough: ~20 minutes.

Stage 1

Your first watched change

Get Watch open and confirm a single change reaches the timeline.

Step 1

Connect to a replica set

Do

Connect NoSqlStudio to a MongoDB replica set or Atlas cluster, using your connection string — for example mongodb+srv://<user>:<password>@<cluster-host>/.

See

The connection opens and appears in the sidebar.

Step 2

Open Watch Deployment

Do

In the toolbar, choose Monitoring ▼ → Watch for Changes → Watch Deployment.

See

A new tab opens with a 🎥 header, a green pulsing LIVE status pill, and a mini-map of the cluster showing the PRIMARY node in green next to its secondaries.

Step 3

Insert a test document

Do

In another tab (the Scratchpad), select a database and insert a document. Run the use command first:

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

See the change land

Do

Switch back to the Watch tab.

See

Within about a second, a green 🟢 Insert card for <database>.test_cw slides in at the top of the timeline.

Why

This is the core of the tool — the live stream is connected and delivering changes. ✅

Stage 2

Filtering and exporting

Step 5

Generate traffic in several collections

Do

Run a few inserts across different collections:

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

A card slides in for each insert.

Step 6

Filter the timeline

Do

Type a collection name (for example orders) in the 🔍 filter field in the header.

See

Only the events whose namespace matches the text stay visible. Clear the field to show everything again.

Step 7

Export the events

Do

With the filter cleared, click 📥 Export.

See

The visible events are saved as an .ndjson file in your Downloads folder.

Concept

NDJSON. One JSON document per line — the natural format for a stream of events, easy to re-import or grep.

Stage 3

Recording and replay

Step 8

Start a recording

Do

In the right-hand panel, find the 🎬 Recording card and turn the toggle on.

See

The card switches to a recording state.

Step 9

Generate events while recording

Do

Run a few changes in another tab:

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

The card shows a live counter, such as recording • 3 events.

Step 10

Stop the recording

Do

Turn the 🎬 Recording toggle off.

See

The recording is automatically downloaded as an .ndjson file.

Step 11

Replay a recording from a file

Do

Click 📂 Open recording and select the .ndjson file you just saved.

See

The header gets a purple 📂 replay (file) badge and the recorded events return to the timeline.

Step 12

Leave replay mode

Do

Click the on the purple replay badge.

See

Replay mode ends and the live stream resumes.

Step 13

Replay the recent past

Do

In the ⏪ Replay card, click Go back 5 minutes.

See

The stream reopens starting a few minutes in the past, so you see changes that already happened.

Heads-up

This works only if the cluster's oplog still holds that much history. On a busy cluster the oplog window can be shorter than 5 minutes.

Stage 4

Webhooks and alerts

Watch can forward changes to an external URL and raise desktop alerts on a rule.

Step 14

Get a test webhook URL

Do

Open https://webhook.site in your browser and copy the unique URL it gives you (format https://webhook.site/<uuid>).

Step 15

Add the webhook

Do

In the 📡 Webhooks card, paste the URL and click + Add.

See

The webhook appears in the list.

Step 16

Configure the webhook

Do

Click the ⚙ on the webhook to expand its settings. Change the HTTP method to PUT, add a header Authorization with the value Bearer xxx, and in the event chips select only 🔴 Delete.

See

The webhook is now set to fire only on deletes, as a PUT request with your header.

Step 17

Insert — nothing is forwarded

Do

Run an insert:

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

webhook.site receives nothing — the webhook is filtered to deletes only.

Step 18

Delete — the webhook fires

Do

Run a delete:

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

webhook.site receives a PUT request with the Authorization: Bearer xxx header and the change event as EJSON in the body. The card shows ✓ 1 sent.

Step 19

Create an alert

Do

In the 🔔 Alerts card, give the alert a name (for example Deleted test), set the namespace pattern as a regular expression — ^.*\.test_cw$ — and click + Create alert.

See

The alert appears in the list.

Step 20

Narrow the alert

Do

Click the ⚙ on the alert and, in the event chips, select only 🔴 Delete.

See

The alert will now fire only on deletes that match the pattern.

Step 21

Trigger the alert

Do

Run another delete:

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

The first time, the system asks for notification permission — allow it once. Then a native desktop notification appears, a sound plays, and the alert history records the hit.

Concept

Recording does not need to be on for alerts to work — alerts are evaluated independently, and their history is kept on its own.

Stage 5

Sound and the cluster mini-map

Step 22

Turn sound on

Do

In the header, click 🔔 Sound off so it becomes Sound on.

Step 23

Hear an insert

Do

Run an insert:

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

A short high beep plays.

Step 24

Hear a delete

Do

Run a delete:

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

A low beep plays — a different pitch from the insert, so you can tell changes apart by ear.

Step 25

Watch the mini-map pulse

See

In the cluster mini-map, the green PRIMARY node pulses with an expanding ring every time an event arrives.

Stage 6

Behaviors and edge cases

Step 26

Persistence

Do

Close the Watch tab (the on the tab title) and reopen it from the menu.

See

Your webhooks, alerts, sound setting and buffer size are all still there.

Step 27

Refresh the database list

Do

Create a new database in another tab, then click 🔄 Refresh in the Watch header.

See

The new database appears in the scope dropdown.

Step 28

Buffer size

Do

Type 50 in the Buffer field in the header.

See

Only the 50 most recent events stay visible — older cards drop off.

Step 29

Clear on scope change

Do

With a stream running on 🌐 Cluster scope, switch to 🗄 a single database.

See

The timeline clears and the stream restarts for the new scope.

Step 30

Humanized error on a standalone

Do

Connect to a standalone MongoDB server (not a replica set) and try Watch Deployment.

See

A clear, friendly message explains that Watch requires a replica set — not a raw server error like “$changeStream stage is only supported…”.

Stage 7

The native Tools menu

Step 31

Open Watch from the Tools menu

Do

Use the native menu: Tools → Change Watcher → Watch Deployment (keyboard shortcut Ctrl+Alt+W).

See

The Watch tab opens, exactly as from the toolbar.

Heads-up

The native menu is built when the app starts. After an in-app reload (Ctrl+R) the menu may be stale — fully restart NoSqlStudio to see menu changes.

Cleanup (when you're done)

Do

Stop the stream with the Stop button in the header, then drop the test collection:

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

The stream is stopped and the test collection is gone.

Summary of what you validated

StageFeature
1Open Watch and see a live change reach the timeline
2Filter the timeline and export events to NDJSON
3Record events, replay from a file, and replay the recent past
4Webhooks (method, headers, event filter) and desktop alerts
5Sound cues per event type and the cluster mini-map pulse
6Persistence, refresh, buffer, scope clearing, humanized errors
7The native Tools menu entry and its shortcut
If every step gave the expected “See”, the Watch screen is 100% validated. Note down the step number of any discrepancy so we can fix it.