The DBCatz Data tab — paging, filters and saved filters, cell editors per type, inserting and deleting rows, foreign keys and the JSON viewer and editor.
Showing for
Open a table and you land in the Data tab (Table → Show Data, mod+1). It works the same for SQL tables, MongoDB
collections and Elasticsearch indexes; the differences for documents are on
MongoDB and Elasticsearch. Redis keys have their own browser, on
Redis and Valkey.
The Data toolbar
Where (SQL) or Filter (MongoDB, Elasticsearch) — type a condition and press Filter; ✕ clears it.
Table → Filter Rows (mod+F) puts the cursor there.
Saved — your saved filters for this table (below).
+ row (mod+shift+I) — insert a row.
Delete N (mod+backspace) — delete the selected rows.
Reset column widths and order — shown once you have resized or moved columns.
↻ Reload.
Filters
What the filter field takes, per engine:
Engine
Example
SQL
id > 100 AND name LIKE '%a%' — the part after WHERE
MongoDB
{ status: 'active' } — a filter document, relaxed JSON
Elasticsearch
title:shoes — a query string, or a JSON query such as { match: { … } }
Saved filters
The Saved dropdown keeps filters per table. It lists them under Saved filters ·
, shows the active
filter’s name once one is picked, and has Save current filter… (or Save under another name… when a saved one
is active). ✕ next to a filter deletes it.
Paging and the footer
The grid shows 200 rows per page, with a pager: « ‹ n / N ›. The footer says how many rows there are (N
rows or N rows match with a filter) and how long the read took, plus one of:
double-click a cell to edit
read-only (no primary key)
read-only connection
and N selected when rows are selected.
Columns: sort, resize, reorder
Click a header to sort by that column; an arrow shows the direction.
Drag a header’s edge to resize; double-click the edge for the column’s natural width.
Drag a header to move the column.
Widths and order are kept per table, together with the display order you set in
Structure. Reset column widths and order puts them back.
Header badges tell you about a column at a glance: UQ (unique), FK (foreign key), the editor it gets
(enum, bool, date …) and the sort arrow. Hover the header for its type, whether it is the primary key, and
→ table.column for a foreign key.
Editing needs a primary key
DBCatz edits a row by its primary key, so a table without one is read-only in the grid — the footer says so.
MongoDB and Elasticsearch use _id. A Read-only connection is never editable.
Selecting rows
Click a row number or a cell to select that row.
⇧-clickShift-click selects a range.
⌘-clickCtrl-click adds or removes one row.
Cell editors per type
Double-click a cell. A small panel opens with the column’s name and type and row N, plus Set NULL, Cancel
(esc) and Save (enter). The editor depends on the column:
Column type
Editor
ENUM
A dropdown of the allowed values, with (empty).
SET
A tick box per allowed value.
BOOLEAN
true / false / NULL.
DATETIME, TIMESTAMP
A date and time picker.
DATE
A date picker.
TIME
A time picker.
Numbers
A number field.
JSON, long text, BLOB, bytea
A multi-line text area.
Everything else
A text field.
A NULL value shows NULL — type to set a value. On a Production connection, saving asks first.
Insert a row
+ row or Table → Insert Row (mod+shift+I) opens New <row> — into
· each field is sent as its default,
NULL, or the value you set.
Each field has three tabs: Default, NULL and Value.
PK marks the primary key; * marks a required field (NOT NULL without a default).
The column’s comment is shown under its name.
The footer counts N of M set · the rest use their defaults.
Insert row (mod+enter) or Cancel (esc).
On MongoDB and Elasticsearch a document has no fixed columns, so the form has a + Field row: type a
name and add it — Numbers, true / false and { } / [ ] are stored as such. A field name cannot start with $ or
contain a dot.
Delete rows
Select rows and press Delete N or Table → Delete Selected Rows (mod+backspace). DBCatz asks Delete N rows? — They
are removed from
right away; there is no undo.
Follow a foreign key
A value in a foreign key column gets a small link (Open the <ref> row with <col> = <value>). Click it and DBCatz
opens the referenced table, filtered to that row. A Back to
button appears in the toolbar, and
Back (mod+[) works too — see Back and forward.
Empty tables
An empty table says No rows yet — add one with + row. With no table picked, the tab says Pick a table and offers
Create table, Import… and Query.
JSON values
JSON gets a viewer and an editor of its own. It works on:
json / jsonb / JSON columns,
MongoDB objects and arrays,
text that looks like JSON (starts with { or [).
Such cells get a { } button — View as formatted JSON.
The JSON viewer
The viewer shows the value indented, coloured and with line numbers, plus the column, its type, the size and row N.
Find in this JSON (mod+F) — with n of m, ↑ ↓, mod+G / mod+shift+G for next / previous,
and enter / shift+enter to step.
Copy — the whole value.
The line count.
Edit — when the row is editable.
Close.
A value that is not valid JSON is shown as it is, with a note.
The JSON editor
Edit switches to the editor, marked with an Editing badge. It keeps the colours as you type.
Format — Indent 2 spaces again. It is a button; it has no shortcut.
Find & Replace (alt+mod+Fmod+H) — Replace and Replace all (mod+enter).
Tab inserts two spaces.
Cancel or Discard changes.
Save (mod+S) — stays off until the JSON parses. If it does not, the error names the line and column.
The status line reads Valid JSON · N lines · mod+F find · alt+mod+Fmod+H replace · mod+S save. A value that was stored compact, on
one line, is saved compact on one line again. On a Production connection,
saving asks first.