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

Pra*_*nka 3 c# mongodb

我正在尝试使用 MongoDB 并创建了一个演示控制台应用程序。\n我想删除一堆文档。此刻我\xe2\x80\x99m用循环一一删除。我的问题是:如何在一个查询中删除所有内容?

\n\n

我有要在 C# 列表中删除的 Bson 文档列表。这是我当前的查询。

\n\n
IMongoClient _Client1 = new MongoClient("mongodb://10.80.3.199:27017");\nIMongoDatabase _Database1 = _Client1.GetDatabase("EventManagement-02");\nIMongoCollection<BsonDocument> collection = _Database1.GetCollection<BsonDocument>("TestResults");\ntry\n{\n    List<BsonDocument> insCollection = new List<BsonDocument>();\n    for (int i = 0; i < inserted.Count; i++)\n    {\n        var filter = Builders<BsonDocument>.Filter.Eq("_id", inserted[i].Id);\n        await collection.DeleteManyAsync(filter);\n    }\n}\ncatch (Exception ex)\n{\n    Console.WriteLine(ex.Message);\n}\n
Run Code Online (Sandbox Code Playgroud)\n

Joh*_*ica 5

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

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