mongodb C#驱动程序更新多个字段
我有一本字典,我想用它来更新mongodb记录。我使用一个简单的foreach来迭代字典并构造一个UpdateDefinition对象。 问题是我无法初始化空的UpdateDefinition对象,因此我被迫使用现有键值初始化UpdateDefinition:mongodb C#驱动程序更新多个字段,c#,mongodb,mongodb-.net-driver,C#,Mongodb,Mongodb .net Driver,我有一本字典,我想用它来更新mongodb记录。我使用一个简单的foreach来迭代字典并构造一个UpdateDefinition对象。 问题是我无法初始化空的UpdateDefinition对象,因此我被迫使用现有键值初始化UpdateDefinition: IDictionary<string, object> document = GetDocument(); string firstKey = document.Keys.First(); var update = Build
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]);
}
IDictionary document=GetDocument();
string firstKey=document.Keys.First();
var update=Builders.update.Set(firstKey,文档[firstKey]);
foreach(document.Keys中的var键)
{
update=update.Set(key,document[key]);
}
这太可怕了。FilterDefinition有一个空筛选器,它非常适合此用途。构建迭代更新定义有类似的方法吗?使用线索:
BsonDocument
有一个带有Dictionary
参数的构造函数BsonDocument
到UpdateDefinition
BsonDocument
到FilterDefinition
//IDictionary dict=。。。;
UpdateOne(新的BsonDocument(“\u id”,“某些过滤器”)、新的BsonDocument(“$set”,新的BsonDocument(dict))、新的UpdateOptions{isupert=true});
// IDictionary<string, object> dict = ...;
collection.UpdateOne(new BsonDocument("_id", "some_filter"), new BsonDocument("$set", new BsonDocument(dict)), new UpdateOptions { IsUpsert = true });