【发布时间】:2019-07-19 16:45:52
【问题描述】:
我有一个 Couchbase 文档,我想在一次调用中更改多个属性。如果其中一个属性值为 null,则变异失败并显示以下消息:
KV 错误:{Name="EINVAL", Description="Invalid packet", Attributes="internal,invalid-input"}
和
的状态Couchbase.IO.ResponseStatus.InvalidArguments
如果我只是尝试用 null 改变单个属性,并且没有一个属性值为 null。变异会成功。
此外,如果我尝试将多个属性更改为 null,它将失败。
// This works
var mutatedWorks1 = bucket.MutateIn<dynamic>(doc1.DocId)
.Upsert("nullProperty", "NotNull")
.Upsert("name", "MutatedName")
.Execute();
// This also works
var mutatedWorks2 = bucket.MutateIn<dynamic>(doc1.DocId)
.Upsert("nullProperty", null)
.Execute();
// This doesn't work
var mutatedNotWork = bucket.MutateIn<dynamic>(doc1.DocId)
.Upsert("nullProperty", null)
.Upsert("name", "MutatedName")
.Execute();
// This also doesn't work
var mutatedNotWork = bucket.MutateIn<dynamic>(doc1.DocId)
.Upsert("nullProperty", null)
.Upsert("name", null)
.Execute();
Couchbase 客户端是 .Net SDK 2.7.10
如果一个或多个属性值为空,我如何改变多个属性?
【问题讨论】:
-
现在使用 SDK v 3.0.6 解决了这个问题。看起来他们重新引入了一个错误哈哈