【问题标题】:Couchbase can't MutateIn multiple upserts with null valueCouchbase 不能 MutateIn 多个空值的 upsert
【发布时间】: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 解决了这个问题。看起来他们重新引入了一个错误哈哈

标签: c# .net-core couchbase


【解决方案1】:

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

谢谢

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-02
    • 2017-01-26
    • 1970-01-01
    • 2017-12-28
    • 1970-01-01
    相关资源
    最近更新 更多