v0.7.0

Writing JSON Fields

Last updated

This page explains how ToriiDB sets, increments, and deletes individual fields inside a stored JSON document.

Writing Fields

SET user.profile.level 2
SET user.profile.active true
SET user.tags.1 database
SET user.meta {"source":"import"}

The value text is converted with utils.Atov:

Text Stored as
null JSON null (deletes the field when the parent is an object)
true / false boolean
integer / float number
{...} / [...] that parses object / array
anything else string
Situation Result
Key missing A new object is created
Key holds non-JSON Fails: not JSON type
Key holds a top-level array Replaced by a new object containing only the written path
Intermediate field missing An empty object is created
Intermediate field is a scalar Fails
Array index out of range or not a number Fails; arrays are never extended
NX / XX Checked against the top-level key
Trailing seconds Sets expiry; without it an existing expiry stays in memory
VECTOR Rejected: error: VECTOR not supported on field-level SET

Numeric Fields

INCR user.profile.level
INCR user.profile.score 0.5

IncrField needs a top-level object and an existing numeric field, adds the delta, rewrites the document with setParsed, and appends the full document to the log. Missing fields and non-numeric values fail without creating anything.

Deleting Fields

DEL user.profile.active

Only a single dotted argument deletes a field; DEL a.b c deletes the top-level keys a.b and c. DelField needs a top-level object. An object field is removed; an array element is set to null instead of shrinking the array. Missing intermediate objects on the path are created as empty objects before the delete.

中文