gpt4 book ai didi

c# - Mongo C# 驱动程序查找多个并删除

转载 作者:行者123 更新时间:2023-12-05 08:40:49 25 4
gpt4 key购买 nike

我使用的是 collection.FindOneAndDeleteAsync,但在用于获取许多文档时会占用大量 CPU。使用 c# mongo 驱动程序查找多个文档(从 100 到 50k 不等)并删除的最佳方法是什么?

谢谢

最佳答案

您需要找到您要删除的文档,然后使用DeleteMany 和过滤器_id: {$in: ids} 删除它们,其中 ids 是这些文档的 _id 值的可枚举值。

C# 示例:

public class Entity
{
public ObjectId id { get; set; }
public string name { get; set; }
}

// Find the documents to delete
var test = db.GetCollection<Entity>("test");
var filter = new BsonDocument();
var docs = test.Find(filter).ToList();

// Get the _id values of the found documents
var ids = docs.Select(d => d.id);

// Create an $in filter for those ids
var idsFilter = Builders<Entity>.Filter.In(d => d.id, ids);

// Delete the documents using the $in filter
var result = test.DeleteMany(idsFilter);

关于c# - Mongo C# 驱动程序查找多个并删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53329048/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com