MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Pilote C# MongoDB - Comment utiliser UpdateDefinitionBuilder ?

Si vous avez simplement besoin de mettre à jour plusieurs propriétés, vous pouvez appeler Set sur le générateur de mise à jour, puis appelez ultérieurement à Set méthodes d'extension. Vous pouvez soit utiliser une expression lambda, soit un nom de propriété.

var update = Builders<Product>.Update
    .Set(p => Name, "Name value")
    .Set(p => Description, "Description value");

collection.UpdateOneAsync(filter, update, updateOptions);

Si vous souhaitez mettre à jour conditionnellement certaines propriétés, vous devez créer une collection de mises à jour, puis les combiner :

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