N1QL:向现有的Couchbase文档中添加新对象

Dim*_*tar 2 database json nosql couchbase sql++

是否可以使用N1QL?

例如我有这个:

{
"blog": "Coffee",
"user_id": 41,
"comments": [
    {
        "comment": "cup",
        "user_id": 883
    },
    {
        "comment": "water",
        "user_id": 790
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

我想使用N1QL在注释中添加糖,以得到以下结果:{“ blog”:“ Coffee”,“ user_id”:41,“ comments”:[{“ comment”:“ cup”,“ user_id”:883}, {“ comment”:“水”,“ user_id”:790},{“ comment”:“糖”,“ user_id”:14}]}

我尝试了这个:

UPDATE
    Blog
SET
    `c.comment` = "sugar",
    `c.user_id` = 14
FOR
    c IN comments
WHERE 
    `blog` = "Coffee" 
// [{"code":3000,"msg":"syntax error - at WHERE"}
Run Code Online (Sandbox Code Playgroud)

和这个:

UPDATE 
    Blog
SET
    ("comments", { "comment": "sugar", "user_id": 14})
WHERE
    `blog` = "Coffee"
//[{"code":3000,"msg":"syntax error - at ("}
Run Code Online (Sandbox Code Playgroud)

ger*_*dss 5

是的,您可以使用N1QL进行任何修改。

UPDATE Blog
SET comments = ARRAY_APPEND( comments, { "comment":"sugar", "user_id":14 } )
WHERE blog = "Coffee";
Run Code Online (Sandbox Code Playgroud)