C# · 12月 23, 2021

c# – 如何编写更新查询以更新mongodb中的多个字段?

如何编写此更新查询以更新c#中的mongo记录. db.collection.update({ “S_Id” : 110 },{ “Name” : “Name1″,”Batch” : “43”,”Date”:”9/2/2011″,”Status” : 0 });

我是这样想的

IMongoUpdate update = new UpdateDocument();if (Named != null) { update = Update.Set(“Name”,”Name1″); }if (Date != null) { update = Update.Set(“Date”,”18/02/2013″); }if (Batch != null) { update = Update.Set(“Batch”,43); }coll.Update(query,update);

我做得正确或以何种方式做到这一点,请让我以正确的方式继续下去.

解决方法 在您的示例中,您可能会覆盖每个选项的update值,因此只会向col1.Update()发送单个更新命令.

你会想要使用Update.Combine方法,有点像这样:(未经测试,有点难看……)

var updateValues = new List<UpdateBuilder>(); if (Named != null) { updateValues.Add(Update.Set(“Name”,”Name1″)); } if (Date != null) { updateValues.Add(Update.Set(“Date”,”18/02/2013″)); } if (Batch != null) { updateValues.Add(Update.Set(“Batch”,43)); } IMongoUpdate update = Update.Combine(updateValues); coll.Update(query,update);