C#MongoDB驱动程序-如何使用UpdateDefinitionBuilder?
我找到了一种使用mongodb的C#MongoDB驱动程序-如何使用UpdateDefinitionBuilder?,mongodb,mongodb-.net-driver,Mongodb,Mongodb .net Driver,我找到了一种使用mongodb的UpdateDefinitionBuilders的方法,但是没有显示太多 我需要能够动态构建我的更新查询,因此我考虑这样做: var update = Builders<Product>.Update; update.Set("add A update"); if () update.Set("add X update"); else update.Set("add Y update"); update.Set("add B up
UpdateDefinitionBuilders
的方法,但是没有显示太多
我需要能够动态构建我的更新查询,因此我考虑这样做:
var update = Builders<Product>.Update;
update.Set("add A update");
if ()
update.Set("add X update");
else
update.Set("add Y update");
update.Set("add B update");
if ()
update.Set("add Z update");
else
update.Set("add P update");
Collection.UpdateOneAsync(filter, update, updateOptions);
var update=Builders.update;
update.Set(“添加更新”);
如果()
update.Set(“添加X更新”);
其他的
update.Set(“添加Y更新”);
update.Set(“添加B更新”);
如果()
update.Set(“添加Z更新”);
其他的
update.Set(“添加P更新”);
UpdateOneAsync(过滤器、更新、更新选项);
但它给出了一个编译错误:
无法从UpdateDefinitionBuilder UpdateDefinition转换
我查看了,但找不到如何使用此UpdateDefinitionBuilders
有人能提供一个如何使用这个类的代码示例吗?如果您需要简单地更新多个属性,您可以在更新生成器上调用Set
,然后调用Set
扩展方法。可以使用lambda表达式或属性名称
var update = Builders<Product>.Update
.Set(p => Name, "Name value")
.Set(p => Description, "Description value");
collection.UpdateOneAsync(filter, update, updateOptions);
var update=Builders.update
.Set(p=>Name,“Name-value”)
.Set(p=>Description,“Description value”);
UpdateOneAsync(过滤器、更新、更新选项);
若要有条件地更新某些属性,则应创建一组更新,然后将它们合并:
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);
var update=Builders.update;
var updates=新列表();
updates.Add(update.Set(“propertyA”,“添加更新”));
如果()
updates.Add(update.Set(“propertyX”、“addx update”);
其他的
updates.Add(update.Set(“propertyY”、“addy update”);
updates.Add(update.Set(p=>p.PropertyB,“Add B update”);
如果()
updates.Add(update.Set(p=>p.PropertyZ,“addzupdate”);
其他的
updates.Add(update.Set(p=>p.PropertyP,“addp update”);
Collection.UpdateOneAsync(filter、update.Combine(updates)、updateOptions);