2017-07-16 16 views
0

ドライバ2.0前に私は、バージョン2にこのMongoDBのC#ドライバのアップデートの問題

var update = Builders<BsonDocument>.Update; 
    var updateQuery = update.Set("FN", "Devesh"); 
    if(true) 
     updateQuery.set("MN","kumar") 
のような同様のアプローチをアップグレードしたので

var update = new UpdateBuilder(); 
    update.set("FN","Devesh") 
    if(true) 
     update.set("MN","kumar") 

のような異なるビジネスロジックに基づいて更新ステートメントを作成することができました

"MN"ではなく "FN"のみが更新されます。同じオブジェクトを更新していないようです。どのように同じを達成するための任意のアイデア。

私はC#official driverを使用しています。

UPDATE

var update = Builders<BsonDocument>.Update; 
    var updateQuery = update.Set("FN", "Devesh"); 
    if(true) 
     updateQuery = updateQuery.set("MN","kumar") 

期待通りに機能しますが、エラーにはあまりにも醜いとなりやすいようです。もっと良い方法でそれを達成できますか?

答えて

0

私は、これはあなたが定期的にupdateDefinitionとしてcombinedUpdatesを使用することができたら

var updateList = new List<UpdateDefinition<TProduct>>(); 

updateList.Add(Builders<BsonDocument>.Update.Set("FN", "Devesh")); 

if (true) 
{ 
    updateList.Add(Builders<BsonDocument>.Update.Set("MN", "kumar")); 
} 

var combinedUpdates = Builders<BsonDocument>.Update.Combine(updateList); 

ため、より管理しやすいソリューションであるかもしれないと考えています。

関連する問題