couchbase - 更新 n1q1 查询 CB 中的子文档映射

标签 couchbase sql++

这是我在 CB 中的文档,

{
    "users": {
        "11111": "ACTIVE",
        "22222": "ACTIVE",
        "33333": "ACTIVE",
        "44444": "ACTIVE",
        "55555": "ACTIVE",
        "666666": "ACTIVE",
        "777777": "ACTIVE",
        "888888": "ACTIVE"
    }
}

我想将此用户映射的所有键更新为 0 而不是事件的。

预期输出

{
    "users": {
        "11111": 0,
        "22222": 0,
        "33333": 0,
        "44444": 0,
        "55555": 0,
        "666666": 0,
        "777777": 0,
        "888888": 0
    }
}

我试过了

UPDATE bucketname SET x=0 FOR x in bucketname.users END WHERE meta().id='%documentKey%'

最佳答案

UPDATE mybucket AS b
SET b.users = OBJECT n:0 FOR n:v IN b.users END
WHERE ......

构造新对象并设置值

FOR n:v IN b.users END
   iterates each field of b.users (n holds name, v holds value)

OBJECT n:0  
   Construct new object field name from n and value is 0 constant

关于couchbase - 更新 n1q1 查询 CB 中的子文档映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73219001/

相关文章:

java - Couchbase:连接被拒绝

java - 如何使用 Spring Data Couchbase(版本 4.4.5)解决 getCouchbaseOperations() 相关依赖项

couchbase - 从 Couchbase 获取特定文档计数的有效方法

node.js - 如何通过cbq为Couchbase服务器中具有密码认证的存储桶创建索引?

database - 在 Couchbase 中使用 N1QL 从对象的对象中获取所有唯一键

php - 使用 memcached 存储桶掌握 Couchbase

Couchbase - 返回不同的值

database - Couchbase 是有序键值存储吗?

couchbase - 如何选择字段中包含特定模式的所有文档?