Couchbase - 更新文档中的对象

时间:2017-11-13 15:22:45

标签: couchbase n1ql

如果我有以下文件,例如: { “作”:“宝马”, “make1”:“奥迪” }

当我执行UPDATE查询更新翻译SET make2 =“MERCEDES”WHERE META()。id =“CARS”时,查询没有问题,并且make2被添加到文档中。

当我执行UPDATE查询时更新翻译SET make2MODEL =“CLS”,make2MODIFICATION =“500”WHERE META()。id = " CARS" 查询返回“sucess”,但没有添加任何内容。如果make2已经存在,则所有内容都按预期更新,只有在对象不存在时才会出现问题。

1 个答案:

答案 0 :(得分:1)

如果父属性是JSON对象,则只能更新嵌套属性。如果父属性设置为字符串,则更新将不会成功,与您所说的相反。

这将有效:

UPDATE Translations USE KEYS "CARS" 
    SET make2 = {};
UPDATE Translations USE KEYS "CARS" 
    SET make2.MODEL = "CLS", d.make7.MODIFICATION = "500";

或者您可以在一行中执行此操作:

UPDATE Translations USE KEYS "CARS" 
    SET make2 = {}, make2.MODEL = "CLS", d.make7.MODIFICATION = "500";