如何编写更新查询以更新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(); 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); 

它现在已修改为:

  FilterDefinitionBuilder builder = Builders.Filter; FilterDefinition filter; filter = builder.Eq("_id",BsonObjectId.Create(objectid)); 

//或要搜索的字段

  var update = Builders.Update .Set("key1", "value1") .Set("key2", "value2") .CurrentDate("lastModified"); Collection.UpdateOne(filter, update);