c# - Couchbase 无法 MutateIn 多个带有 null 值的 upserts

标签 c# .net-core couchbase

我有一个 Couchbase 文档,我想在一次调用中更改多个属性。如果其中一个属性值为 null,则 mutate 会失败并显示以下消息:

KV Error: {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

如果一个或多个属性值为 null,如何改变多个属性?

最佳答案

此问题现已修复 ( NCBC-2038 ),并计划在我们定于 2019 年 8 月 6 日发布的下一个维护补丁中发布。

谢谢

关于c# - Couchbase 无法 MutateIn 多个带有 null 值的 upserts,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57116620/

相关文章:

c# - 在 silverlight 中使用反射调用 routedevents 上注册的事件处理程序

c# - KeyValuePair<> 结构中 Deconstruct 方法的目的是什么?

java - Spring Data 项目 - Couchbase 集成

java - 在 Couchbase 中调用删除文档(带分页)时的 Spring Data "TimeoutException"

c# - Google 日历事件未显示在日历中

c# - 从 Javascript 访问 MVC 的模型属性

sqlite - EF Core 中每隔一个数据行都有一个空关系

java - 将 Apache Spark 与 couchbase 连接

c# - 如何使用 AJAX 通过 token key 获取 ASP.NET WebAPI 服务器中的数据库数据

c# - 使用 Moq 从另一个方法调用模拟方法