Docs · DBCatz

Data and JSON

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.

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.

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.

JSON shortcuts

Key Where What it does
mod+F Viewer and editor Find
mod+G / mod+shift+G Viewer and editor Next / previous match
enter / shift+enter In the find field Next / previous match
alt+mod+Fmod+H Editor Find & Replace
mod+enter Replace field Replace all
mod+S Editor Save
Tab Editor Two spaces

Last updated 2026-11-03