【发布时间】:2020-02-06 11:48:04
【问题描述】:
我正在寻找一种方法来在 MongoDB 中将项目列表更新/Upsert 到 MongoDB 集合。
有什么方法可以做到,还是我必须使用循环来逐个更新项目?
P.S:问题不在于创建一个可以完成工作的方法(一个接一个),但我想避免对 MongoDB 数据库进行过多的迭代。
这是我目前使用的方法:
public static void UpdateAll()
{
var client = new MongoClient("mongodb://server_ip:27017");
var db = client.GetDatabase("M_PROJECT");
var collection = db.GetCollection<Product>("products");
//Config.Products is a List<Product> that was previously retrieved from the same collection in MongoDB
foreach(Product product in Config.Products)
{
var filter = Builders<Product>.Filter.Eq(p => p.ID, product.ID);
var update = Builders<Product>.Update.Set("Name", product.Name).Set("Price", 20);
collection.UpdateOne(filter, update, new UpdateOptions() { IsUpsert = true });
}
}
也许没有指定我要更新的每个字段/属性,而只是应用类实例。
【问题讨论】:
标签: c# mongodb list collections multiple-instances