【发布时间】:2020-09-02 09:18:40
【问题描述】:
我有一个 Couchbase 文档,我想使用服务器版本 6.6.0、CouchbaseNetClient 3.0.5、Couchbase.Extensions.DependencyInjection 3.0.4.811 进行变异。
文档:
{
"name": "First Last",
"email": null
}
变异代码:
var bucket = await _bucketProvider.GetBucketAsync();
await bucket.DefaultCollection().MutateInAsync(updatedProfile.Id, new[]
{
MutateInSpec.Upsert("name", updatedProfile.Name),
MutateInSpec.Upsert("email", updatedProfile.Email)
});
当新的电子邮件值为空时,我收到以下错误:
KV 错误:{Name="EINVAL", Description="Invalid packet", 属性="internal,invalid-input"}
这似乎是一个错误,很遗憾,我无法将问题提交到 GitHub 上的 .NET 客户端存储库。
我在Couchbase can't MutateIn multiple upserts with null value 找到了类似的帖子,但即使我只更新一个值,它仍然不会变为 null。
任何帮助将不胜感激。
注意:以下是重现问题的示例 sn-p。
class Program
{
private static ICluster _cluster;
static async Task Main(string[] args)
{
var userInfo = new
{
Name = "User1",
Email = (string)null // *** This is causing the exception. ***
};
_cluster = await Cluster.ConnectAsync("couchbase://localhost", "Administrator", "Password");
var bucket = await _cluster.BucketAsync("items");
await bucket.DefaultCollection().MutateInAsync("doc1", new[]
{
MutateInSpec.Upsert("name", userInfo.Name),
MutateInSpec.Upsert("email", userInfo.Email) // *** Setting the null value ***
});
_cluster.Dispose();
}
}
编辑: Couchbase Jira 问题 - https://issues.couchbase.com/browse/NCBC-2640
【问题讨论】:
-
您可以在issues.couchbase.com提交错误
-
感谢链接 - 我注册并创建了一个问题 - issues.couchbase.com/browse/NCBC-2640
-
对于与 Go 有同样问题的人,我刚刚打开了另一张特定于 Go SDK 的票:issues.couchbase.com/browse/GOCBC-994
标签: c# .net .net-core couchbase