查看了文档,想知道是否有一种方法可以直接更新数组中的文档。我只找到Append,Prepend和Insert,现在我的解决方法是
bucket
.mutateIn(docID)
.remove(path + "[" +index +"]")
.arrayInsert(path +"[" +index +"]", doc)
.execute((err, result) => {}
这是可行的,但我怀疑理想,因为在我的情况下它会导致2次操作,实际上我必须在文档上进行3次操作 在我可以删除并再次插入之前,此文档在数组中的索引
答案 0 :(得分:1)
有一个名为replace
的{{3}}命令,允许更新元素。
bucket
.mutateIn(docID)
.replace(path + "[" +index +"]", doc)
.execute((err, result) => {}
答案 1 :(得分:0)
看起来SDK中缺少此方法,我将为其打开一个票证。同时,您也可以通过ARRAY_REMOVE或ARRAY_REPLACE(tks to vsr)使用N1QL
https://docs.couchbase.com/server/6.0/n1ql/n1ql-language-reference/arrayfun.html#fn-array-remove