在一个查询中删除多个MongoDB文档

时间:2018-10-31 06:24:38

标签: c# mongodb

我正在尝试使用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);
}

1 个答案:

答案 0 :(得分:2)

您可以简单地这样编写代码(无循环):

var filter = Builders<BsonDocument>.Filter.In("_id", inserted.Select(i => i.Id));
await collection.DeleteManyAsync(filter);