【发布时间】:2018-02-14 14:35:24
【问题描述】:
我正在对 couchbase 文档进行部分更新,如下所示:
...
MutateInBuilder builder = bucket.mutateIn(id);
for (Map.Entry<String, Object> entry : map.entrySet())
{
builder = builder.upsert(entry.getKey(), entry.getValue());
}
builder.execute();
...
当所有 upsert 调用中的所有值都属于同一类型时,一切正常。
但是,如果某些值是字符串,而其他值是布尔值,我们就会遇到异常:
com.couchbase.client.core.CouchbaseException: SUBDOC_INVALID_COMBO 在 com.couchbase.client.java.subdoc.SubdocHelper.commonSubdocErrors(SubdocHelper.java:100) 在 com.couchbase.client.java.subdoc.AsyncMutateInBuilder$2.call(AsyncMutateInBuilder.java:1094) 在 com.couchbase.client.java.subdoc.AsyncMutateInBuilder$2.call(AsyncMutateInBuilder.java:1052)
在 upsert 的测试用例中,找不到任何更新多个属性的情况。
我们如何在 Couchbase 中插入具有不同类型属性的文档?
编辑#1:
现在,事情变得更奇怪了……如果我在一次迭代中更新超过 16 个属性,我也会遇到同样的异常。
【问题讨论】:
标签: javascript couchbase partial upsert java-client