複数のプロパティを単に更新する必要がある場合は、Set
を呼び出すことができます アップデートビルダーで、その後Set
を呼び出します 拡張メソッド。ラムダ式またはプロパティ名のいずれかを使用できます。
var update = Builders<Product>.Update
.Set(p => Name, "Name value")
.Set(p => Description, "Description value");
collection.UpdateOneAsync(filter, update, updateOptions);
一部のプロパティを条件付きで更新する場合は、更新のコレクションを作成してから、それらを組み合わせる必要があります。
var update = Builders<Product>.Update;
var updates = new List<UpdateDefinition<Product>>();
updates.Add(update.Set("propertyA", "add A update"));
if ()
updates.Add(update.Set("propertyX", "add X update"));
else
updates.Add(update.Set("propertyY", "add Y update"));
updates.Add(update.Set(p => p.PropertyB, "add B update"));
if ()
updates.Add(update.Set(p => p.PropertyZ, "add Z update"));
else
updates.Add(update.Set(p => p.PropertyP, "add P update"));
Collection.UpdateOneAsync(filter, update.Combine(updates), updateOptions);