Couchbase不能MutateIn多个具有null值的upsert

时间:2019-07-19 16:45:52

标签: c# .net-core couchbase

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

  

KV错误:{Name =“ EINVAL”,Description =“无效的数据包”,Attributes =“内部,无效输入”}

和状态

  

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

如果一个或多个属性值为空,如何对多个属性进行突变?

1 个答案:

答案 0 :(得分:2)

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

谢谢