複雑なネストされたドキュメントを含むテーブルがあります。各ドキュメントの構造は、次の例のようになります。
{
"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__"
}
配列protocol.overrides
の 2 番目の項目のプロパティにある項目の 1 つを更新したいと考えています。events
アクセスする必要があることは事前にmyTable.get($id).events(1)('protocol')('overrides')
わかっていますが、ネストされた配列内のどの項目を置き換える必要があるかを事前に知る方法はありません。
この特定の例では、アイテムをindex: 7
, and (2 番目のアイテム) に置き換える必要があり、そのプロパティをparentIndex: 10
に変更したいとします。values
{foo: "baz", bar: "curley"}
これを可能にするメソッドが reQL API にありません。changeAt
配列インデックスがわかっている場合はindexOf
使用できますが、述語を照合してインデックスを見つけることができる関数などは見当たりません。