使用以下给定的数据模型:
{
"snapshots": [
{
"createdAt": "2019-03-15T06:31:04.447Z",
"entries": [
{
"balance": 139763,
"expiresOn": "3019-03-31T23:59Z"
},
{
"balance": 46961,
"expiresOn": "3019-03-31T23:59Z"
}
]
}
],
"type": "account"
}
我正在尝试更新快照数组中条目数组中的 expiresOn 字段,以下是我尝试但未执行的查询工作。
UPDATE bucket
SET snapshot.entry.expiresOn = "2020-03-30T23:59Z"
FOR snapshot IN snapshots
FOR entry IN snapshot.entries
END
WHERE type = "account"
答案 0 :(得分:2)
让它正常工作,是一个愚蠢的错误。
json模型中的内部数组应该是查询中的外部for循环。
UPDATE bucket
SET entry.expiresOn = "2020-03-30T23:59Z"
FOR entry IN snapshot.entries FOR snapshot IN snapshots END
WHERE type = "account"
答案 1 :(得分:2)
以下是正确的查询,用于更新快照数组中的entrys数组中的expiresOn字段。 SET snapshot.entry.expiresOn =“ 2020-03-30T23:59Z”可能会更新错误的位置或不会更新(由于额外引用了快照)。
UPDATE bucket AS b
SET entry.expiresOn = "2020-03-30T23:59Z"
FOR entry IN snapshot.entries FOR snapshot IN b.snapshots END
WHERE b.type = "account";