【问题标题】:C# MongoDB, remove top 10 from sorted collectionC# MongoDB,从排序集合中删除前 10 名
【发布时间】:2025-12-12 02:50:02
【问题描述】:

我有一个包含 1000 个项目的集合。我想按日期对它们进行排序(SaveDateUtc 字段)并删除其中的前 10 个,所以我的收藏中只剩下 990 个最新项目。

我可以先查找,然后再删除,没问题,但如果我可以只调用 Remove 就更好了。但我找不到通过查询排序和设置前 10 名的方法。

所以我的问题是,我可以在一个电话中做到这一点吗? (我使用的是 C# 驱动程序)

【问题讨论】:

    标签: c# mongodb database


    【解决方案1】:

    其实也有类似的问题:MongoDB find and remove - the fastest way

    但不幸的是findAndUpdate 不能被记录数限制。所以我对你的建议:

    • 您可以引入一些代理字段,以便将其用作查询中的字段
    • 您可以编写自己的 java-script 服务器端函数,该函数将在服务器端执行此操作。好处 - 操作在服务器上完成,它是原子的。陷阱 - 它不适用于分片表。

    【讨论】: