【发布时间】:2019-02-12 20:23:16
【问题描述】:
沙发底座 2.5+
这里是沙发基地的新手。我正在寻找从列表中删除一个项目,其中一个子项目基于子项目的值。例如,如果我想删除列表scores 中的所有记录,其中子score < 0.2
此项目的密钥为"dim::100020891::2020-10-04"
我想运行它,但它不起作用
UPDATE Q1036628 USE KEYS "dim::100020891::2020-10-04" SET scores=ARRAY_REMOVE(scores, {
"score"< "0.2"
})
沙发底座项目:
[
{
"Q1036628": {
"record_update_dt": "2020-10-04",
"scores": [
{
"name": "A",
"score": 0.01
},
{
"name": "B",
"score": 0.5
},
{
"name": "C",
"score": 0.26
},
{
"name": "D",
"score": 0.17
}
],
"id": "100020891"
}
}
]
【问题讨论】:
-
有点困惑:你说“Couchbase 2.5”,但你引用的是 N1QL,它直到 4.x 才出现在 Couchbase 中。您使用的是哪个版本的 Couchbase 服务器?
-
另外,你的“Couchbase item”看起来是一个数组。它真的是一个带有数组的文档(不常见但可能),还是有一个 Q1036628 存储桶包含一个带有键“100020891”的文档?
-
好问题。我在 Couchbase 版本上犯了一个错误。我们使用的是 couchbase 5.5。 Q1036628 是一个桶,上面有一个项目。每个 id 都会有几个属性,我们正在讨论创建它的最佳模型(将属性全部放在一个列表中,或者将每个属性放在自己的文档中)。现在所有属性都在一个文档中,稍后将单独更新。不过,我们并没有接受这个想法。