2016-11-09 44 views
3

我有以下n1ql查詢:多個Couchbase更新設置

UPDATE default 
USE KEYS '557a7628-1217-4974-95cf-d64247c560cd' 
SET p.last_seen_message_id = 'e5010536-7fde-42c1-9fea-e4a29e560f53', p.last_seen_message_text = 'hello' 
FOR p IN participants WHEN p.id = '119c35ab-a1cc-4e9f-bab5-d58d6d396623' END 
WHERE doc_type = 'conversation' 
RETURNING default.* 

與此查詢,我想在一個數組的元素設置兩個屬性,但只有最後一個(p.last_seen_message_text = 'hello')有任何影響。第一個(在這種情況下爲p.last_seen_message_id = 'e5010536-7fde-42c1-9fea-e4a29e560f53')不會更改該屬性。

我在Windows上使用Couchbase 4.5.1-2845。

我怎麼能解決這個問題,而不使用兩個單獨的更新?

回答

2

對於每個目標,您需要一個單獨的FOR

UPDATE default 
USE KEYS '557a7628-1217-4974-95cf-d64247c560cd' 
SET p.last_seen_message_id = 'e5010536-7fde-42c1-9fea-e4a29e560f53' FOR p IN participants WHEN p.id = '119c35ab-a1cc-4e9f-bab5-d58d6d396623' END, 
    p.last_seen_message_text = 'hello' FOR p IN participants WHEN p.id = '119c35ab-a1cc-4e9f-bab5-d58d6d396623' END 
WHERE doc_type = 'conversation' 
RETURNING default.*; 
+0

我很害怕這個。 –