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# - 如何让grpc像WCF一样抛出原始异常?

json - 如何强制DotNetCore 2.1 Web API输出Json格式?我需要什么图书馆?

couchbase - 在 couchbase cbq cli 中从 N1SQL 返回 NULL 结果

couchbase - 无法通过sync_gateway连接到远程服务器

javascript - node.js 在插入到 couchbase 后永远不会退出,这与大多数 Node 问题相反

c# - 拆箱不会创建值的副本。这是正确的吗?

c# - 项目不引用框架,但它确实

c# - IIS Express 路由在 Visual Studio 2019 中无法正常工作

c# - 检查按钮是否在特定区域

c# - Automapper 更新字典值