2017-02-23 5 views
-1

私は辞書を持っていますが、アップアップをしたいのですが、唯一の方法は.Setを使ってフィールドにラップすることです。各辞書エントリをフィールドに変換する方法はありますか?ラッパーなしでMongoアップデートで辞書を使用しますか?

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); 

答えて

0

私は仕事をするために、この拡張メソッドを作成しました:

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; 
    } 
関連する問題