在 Mongo 更新时使用词典而不使用包装器?

Use Dictionary on Mongo Update without wrapper?

我有一本字典,我想做一个更新插入,但我发现的唯一方法是用 .Set 将它包装到一个字段中,有没有办法将每个字典条目转换为一个字段?

var data = new Dictionary<string, object>() { { "Test1", 1 }, { "Test2", 2 } };

var filter = Builders<BsonDocument>.Filter.Eq("_id", LoggerScope.Identifier);
var update = Builders<BsonDocument>.Update
     .Set() //
     .SetOnInsert("InsertDate", DateTime.UtcNow);
var options = new UpdateOptions { IsUpsert = true };

await _Collection.UpdateOneAsync(filter, update, options);

我创建了这个扩展方法来完成这项工作:

    public static UpdateDefinition<TDocument> SetDictionary<TDocument, TKey, TValue>(this UpdateDefinition<TDocument> update, IDictionary<TKey, TValue> dict)
    {
        foreach (var field in dict)
        {
            update = update.Set(field.Key as String, field.Value);
        }

        return update;
    }