C# MongoDB,从排序集合中删除前 10 个

本文关键字:删除 集合 MongoDB 排序 | 更新日期: 2023-09-27 18:32:28

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

我可以先查找,然后删除,没问题,但是如果我只需一个删除调用就可以做到这一点,那就更好了。但是我找不到通过查询对前 10 名进行排序和设置的方法。

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

C# MongoDB,从排序集合中删除前 10 个

实际上也有类似的问题:MongoDB查找和删除 - 最快的方法

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

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