N1QL中的Upsert:如何计算现有文档的值

时间:2015-05-13 12:33:32

标签: couchbase

我希望基于唯一键来插入文档,或者如果文档已经存在则更新计数器。

UPSERT documentation of DP4中,我找到了一个示例,表明UPSERT更像是INSERT或REPLACE。

UPSERT INTO product (KEY, VALUE) 
VALUES ("EAN1234567", 
        { "productId": "EAN1234567", "counter": 1}) 
RETURNING * ;

如何增加UPSERT中现有条目的计数器?

1 个答案:

答案 0 :(得分:3)

您可以在N1QL中使用MERGE语句。

MERGE INTO产品p使用(SELECT NULL)s ON KEY你的键 当匹配时更新设置p.counter = p.counter + 1 什么时候没有匹配,然后插入...;