多套Couchbase更新

时间:2016-11-09 11:44:56

标签: couchbase n1ql

我有以下n1ql查询:

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。

如果不使用两个单独的更新,我怎么能解决这个问题?

1 个答案:

答案 0 :(得分: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.*;