我正在尝试使用MongoDB,并创建了一个演示控制台应用程序。 我想删除一堆文件。目前,我正在逐个删除循环。我的问题是:如何删除一个查询中的所有内容?
我在C#列表中有要删除的Bson文档列表。这是我当前的查询。
IMongoClient _Client1 = new MongoClient("mongodb://10.80.3.199:27017");
IMongoDatabase _Database1 = _Client1.GetDatabase("EventManagement-02");
IMongoCollection<BsonDocument> collection = _Database1.GetCollection<BsonDocument>("TestResults");
try
{
List<BsonDocument> insCollection = new List<BsonDocument>();
for (int i = 0; i < inserted.Count; i++)
{
var filter = Builders<BsonDocument>.Filter.Eq("_id", inserted[i].Id);
await collection.DeleteManyAsync(filter);
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
答案 0 :(得分:2)
您可以简单地这样编写代码(无循环):
var filter = Builders<BsonDocument>.Filter.In("_id", inserted.Select(i => i.Id));
await collection.DeleteManyAsync(filter);