更新 couchbase 中的嵌套数组
updating nested array in couchbase
使用下面给定的数据模型:
{
"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"
}
我正在尝试更新 snapshots 数组中 entries 数组中的 expiresOn 字段,下面是我试过但不起作用的查询。
UPDATE bucket
SET snapshot.entry.expiresOn = "2020-03-30T23:59Z"
FOR snapshot IN snapshots
FOR entry IN snapshot.entries
END
WHERE type = "account"
成功了,这是一个愚蠢的错误。
json 模型中的内部数组应该是查询中的外部 for 循环。
UPDATE bucket
SET entry.expiresOn = "2020-03-30T23:59Z"
FOR entry IN snapshot.entries FOR snapshot IN snapshots END
WHERE type = "account"
下面是更新snapshots数组中entries数组中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";
使用下面给定的数据模型:
{
"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"
}
我正在尝试更新 snapshots 数组中 entries 数组中的 expiresOn 字段,下面是我试过但不起作用的查询。
UPDATE bucket
SET snapshot.entry.expiresOn = "2020-03-30T23:59Z"
FOR snapshot IN snapshots
FOR entry IN snapshot.entries
END
WHERE type = "account"
成功了,这是一个愚蠢的错误。
json 模型中的内部数组应该是查询中的外部 for 循环。
UPDATE bucket
SET entry.expiresOn = "2020-03-30T23:59Z"
FOR entry IN snapshot.entries FOR snapshot IN snapshots END
WHERE type = "account"
下面是更新snapshots数组中entries数组中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";