【问题标题】:Couchbase update for multiple set多组沙发底座更新
【发布时间】:2016-11-09 11:44:55
【问题描述】:

我有以下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。

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

【问题讨论】:

    标签: couchbase n1ql


    【解决方案1】:

    每个目标都需要一个单独的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.*;
    

    【讨论】:

    • 我害怕那个。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多