API Reference / @evolu/common / Evolu/Public / kysely / jsonArrayFrom
Function: jsonArrayFrom()
function jsonArrayFrom<O>(expr): RawBuilder<Simplify<O>[]>;
Defined in: packages/common/src/Evolu/PublicKysely.ts:70
A SQLite helper for aggregating a subquery into a JSON array.
Examples
import { kysely } from "@evolu/common";
// TODO: Update for Evolu
const result = await db
.selectFrom("person")
.select((eb) => [
"id",
kysely
.jsonArrayFrom(
eb
.selectFrom("pet")
.select(["pet.id as pet_id", "pet.name"])
.whereRef("pet.owner_id", "=", "person.id")
.orderBy("pet.name"),
)
.as("pets"),
])
.execute();
result[0]?.id;
result[0]?.pets[0].pet_id;
result[0]?.pets[0].name;
The generated SQL (SQLite):
select "id", (
select coalesce(json_group_array(json_object(
'pet_id', "agg"."pet_id",
'name', "agg"."name"
)), '[]') from (
select "pet"."id" as "pet_id", "pet"."name"
from "pet"
where "pet"."owner_id" = "person"."id"
order by "pet"."name"
) as "agg"
) as "pets"
from "person"
Type Parameters
Type Parameter |
---|
O |
Parameters
Parameter | Type |
---|---|
expr | SelectQueryBuilderExpression <O > |
Returns
RawBuilder
<Simplify
<O
>[]>