複雑なネストされたドキュメントを含むテーブルがあります。各ドキュメントの構造は、次の例と同様である。インデックスを知らずにネストされた配列アイテムを更新するクエリ
{
"description": "Sample Document",
"events": [
{
"liquids": { ... },
"protocol": {
"id": "5b190c4d-6590-49a3-b9a7-69f036f45e55"
},
"schedule": { ... }
},
{
"liquids": { ... },
"protocol": {
"id": "a4353a88-6021-418f-a18c-0526550edb57",
"overrides": [
{
index: 9,
values: {
foo: "bar"
}
{
index: 7,
parentIndex: 10,
values: {
foo: 8,
bar: 9
}
}
]
},
schedule: { ... }
}
],
"id": "7c424fc3-1a58-4a4e-b1b6-8d25412a85da",
"name": "Sample Doc",
"project_id": "__ROOT__"
}
Iはevents
配列の2番目の項目のprotocol.overrides
性の項目のいずれかを更新します。私はmyTable.get($id).events(1)('protocol')('overrides')
にアクセスする必要があることを事前に知っていますが、入れ子になっている配列のどの項目を置き換える必要があるかを事前に知る方法はありません。この具体例では
、私はindex: 7
とアイテムを交換する必要がある、とparentIndex: 10
(第2項)と私は{foo: "baz", bar: "curley"}
にそのvalues
プロパティを変更することを言うことができますことを言うことができます。
これを可能にするreQL APIのメソッドはありません。配列インデックスを知っていればchangeAt
を使用することができますが、indexOf
関数やそれに類似した述語に一致するインデックスを見つけることができません。