-
-
Notifications
You must be signed in to change notification settings - Fork 2
JSON Sugars
Oxford Harrison edited this page Nov 11, 2024
·
16 revisions
Linked QL supports a few JSON-like syntaxes for modelling structure.
Syntax | Syntax | Equivalent Function (PostgreSQL) | Equivalent Function (MySQL) |
---|---|---|---|
Model objects | { expr1, expr2 AS key, ... } |
JSON_BUILD_OBJECT() |
JSON_OBJECT() |
Model arrays | [ expr1, expr2 ] |
JSON_BUILD_ARRAY() |
JSON_ARRAY() |
Aggregate an expr | expr1[] |
JSON_AGG() |
JSON_ARRAYAGG() |
// Model objects and arrays
const result = await client.query(
`SELECT
name,
email,
{ email, phone AS mobile } AS contact1,
[ email, phone ] AS contact2
FROM users`
);
console.log(result);
Console
[ { name: 'John Doe', email: '[email protected]', contact1: { email: '[email protected]', mobile: '(555) 123-4567' }, contact2: [ '[email protected]', '(555) 123-4567' ] }, { name: 'Alice Blue', email: '[email protected]', contact1: { email: '[email protected]', mobile: '(888) 123-4567' }, contact2: [ '[email protected]', '(888) 123-4567' ] } ]
// Aggregate a column
const result = await client.query(
`SELECT
email[] as emails
FROM users`
);
console.log(result);
Console
[ { emails: [ '[email protected]', '[email protected]' ] } ]