C# 如何编写更新查询来更新mongodb中的多个字段?
如何编写此更新查询以更新c#中的mongo记录 我正在这样努力C# 如何编写更新查询来更新mongodb中的多个字段?,c#,mongodb,C#,Mongodb,如何编写此更新查询以更新c#中的mongo记录 我正在这样努力 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"
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”);}
如果(Date!=null){updateValues.Add(Update.Set(“Date”,“18/02/2013”);}
如果(Batch!=null){updateValues.Add(Update.Set(“Batch”,43));}
IMongoUpdate=update.Combine(updateValue);
coll.Update(查询、更新);
它现在已修改为:
FilterDefinitionBuilder<BsonDocument> builder = Builders<BsonDocument>.Filter;
FilterDefinition<BsonDocument> filter;
filter = builder.Eq("_id",BsonObjectId.Create(objectid));
FilterDefinitionBuilder=Builders.Filter;
过滤器定义过滤器;
filter=builder.Eq(“_id”,BsonObjectId.Create(objectid));
//或要搜索的字段
var update = Builders<BsonDocument>.Update
.Set("key1", "value1")
.Set("key2", "value2")
.CurrentDate("lastModified");
Collection.UpdateOne(filter, update);
var update=Builders.update
.Set(“键1”、“值1”)
.Set(“键2”、“值2”)
.当前日期(“上次修改”);
Collection.UpdateOne(过滤器,更新);
这不适用,因为问题具体是关于在多行上构建更新。你的查询是有效的,只是没有回答问题。
FilterDefinitionBuilder<BsonDocument> builder = Builders<BsonDocument>.Filter;
FilterDefinition<BsonDocument> filter;
filter = builder.Eq("_id",BsonObjectId.Create(objectid));
var update = Builders<BsonDocument>.Update
.Set("key1", "value1")
.Set("key2", "value2")
.CurrentDate("lastModified");
Collection.UpdateOne(filter, update);