【发布时间】:2018-09-06 08:47:25
【问题描述】:
我正在努力处理 update-for N1QL 查询
我的文件如下所示:
{
"invalidityReasons": {
"AU": [
"ANCESTOR_DEACTIVATED_OR_INVALID"
],
"BE": [
"ANCESTOR_DEACTIVATED_OR_INVALID"
],
"BG": []
}
"metadata": {
"configurations": {
"AU": {
"enabled": true,
},
"BE": {
"enabled": false,
},
"BG": {
"enabled": true,
}
}
}
}
我正在尝试做的事情:
对于 所有 个具有无效性原因“ANCESTOR_DEACTIVATED_OR_INVALID”并已激活(即“启用”:在 metadata.configurations 中为真)的国家/地区 => 停用该国家/地区(即“启用”:假)
在上面的示例中,应该停用 AU(澳大利亚)
我现在在哪里
这意味着在我的脑海中:
- 想想所有国家
- 找到那些无效原因 = ANCESTOR_DEACTIVATED_OR_INVALID + enable = true
- 更新激活
所以update-for 看起来不错,但我无法让它工作:
update `data` t
SET t.metadata.configurations.[country].enabled = false
FOR country IN OBJECT_NAMES(t.metadata.configurations)
when t.metadata.configurations.[country].enabled = true
and array_contains(t.invalidityReasons.[country], 'ANCESTOR_DEACTIVATED_OR_INVALID') end;
Couchbase 宣布突变,但我的国家/地区仍处于激活状态
你有什么想法吗:
- 如果 N1QL 甚至可以做到这一点?
- 我做错了什么? :)
顺便说一下,我使用的是 Couchbase EE 5.1.1
谢谢, 干杯,
朱尔斯
【问题讨论】: