gpt4 book ai didi

c# - mongodb C# 驱动程序更新多个字段

转载 作者:可可西里 更新时间:2023-11-01 09:39:47 24 4
gpt4 key购买 nike

我有一本字典,我想用它来更新 mongodb 记录。我正在使用一个简单的 foreach 来迭代字典并构造一个 UpdateDefinition 对象。问题是我无法初始化空的 UpdateDefinition 对象,因此被迫使用现有键值初始化 UpdateDefinition:

IDictionary<string, object> document = GetDocument();
string firstKey = document.Keys.First();
var update = Builders<BsonDocument>.Update.Set(firstKey, document[firstKey]);

foreach (var key in document.Keys)
{
update = update.Set(key, document[key]);
}

这太可怕了。 FilterDefinition 有一个空的过滤器,非常适合这个目的。是否有类似的东西用于构建迭代 UpdateDefinitions?

最佳答案

使用线索:

  1. BsonDocument 有一个带有Dictionary 参数的构造函数
  2. 存在从 BsonDocumentUpdateDefinition 的隐式转换
  3. 存在从 BsonDocumentFilterDefinition 的隐式转换

您可以将所有内容减少到这一行,(更新不是强制性的):

// IDictionary<string, object> dict = ...;
collection.UpdateOne(new BsonDocument("_id", "some_filter"), new BsonDocument("$set", new BsonDocument(dict)), new UpdateOptions { IsUpsert = true });

关于c# - mongodb C# 驱动程序更新多个字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38615145/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com