多套 Couchbase 更新
Couchbase update for multiple set
我有以下 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。
如何在不使用两个单独的更新的情况下解决这个问题?
每个目标需要一个单独的 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.*;
我有以下 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。
如何在不使用两个单独的更新的情况下解决这个问题?
每个目标需要一个单独的 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.*;