MongoDb c#官方驱动批量更新

本文关键字:更新 官方 MongoDb | 更新日期: 2023-09-27 18:06:26

如何通过使用IMongoCollection接口的新c# MongoDb驱动程序重写以下旧代码:

var bulk = dbCollection.InitializeUnorderedBulkOperation();
foreach (var profile in profiles)
{
   bulk.Find(Query.EQ("_id",profile.ID)).Upsert().Update(Update.Set("isDeleted", true));  
}
bulk.Execute();

如何使用Builder机制创建Update操作对我来说很清楚,但是如何执行批量更新操作?

MongoDb c#官方驱动批量更新

MongoDB。驱动程序有UpdateManyAsync

var filter = Builders<Profile>.Filter.In(x => x.Id, profiles.Select(x => x.Id));
var update = Builders<Profile>.Update.Set(x => x.IsDeleted, true);
await collection.UpdateManyAsync(filter, update);

新版本MongoDB。驱动程序可以设置Flag

var query = Query<Profile>.In(p => p.ID, profiles.Select(x => x.Id));
var update = Update<Profile>.Set(p => p.IsDeleted, true);
Collection.Update(query, update, UpdateFlags.Multi);