2016-05-16 3 views
2

Возможно ли использование N1QL?N1QL: добавить новый объект в существующий документ couchbase

Например у меня есть это:

{ 
"blog": "Coffee", 
"user_id": 41, 
"comments": [ 
    { 
     "comment": "cup", 
     "user_id": 883 
    }, 
    { 
     "comment": "water", 
     "user_id": 790 
    } 
    ] 
} 

И я хочу, используя N1QL добавить сахар комментариев, чтобы привести это: { "блог": "Кофе", "user_id": 41, "комментарии": [{ "комментарий": "чашка", "user_id": 883 }, { "комментарий": "вода", "user_id": 790 }, {"комментарий": "сахар", "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"} 

И это:

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

ответ

3

Да, вы можете выполнить любую модификацию с использованием N1QL.

UPDATE Blog 
SET comments = ARRAY_APPEND(comments, { "comment":"sugar", "user_id":14 }) 
WHERE blog = "Coffee"; 
+0

это работает! благодаря! – Dimitar

Смежные вопросы