在我的Collection 中,文档包含类似键的状态和时间戳.当我想找到最新的十个文档时,我会写下面的查询

db.collectionsname.find().sort({"timestamp"-1}).limit(10)

这个查询给了我想要的结果,但是当我想删除最近的十个文档时,我写了下面的查询

db.collectionsname.remove({"status":0},10).sort({"timestamp":-1})

但它显示出以下错误

推荐答案

使用removefindAndModify时不能设置限制.因此,如果想要精确地限制删除的文档数量,需要分两步进行.

db.collectionName.find({}, {_id : 1})
    .limit(100)
    .sort({timestamp:-1})
    .toArray()
    .map(function(doc) { return doc._id; });  // Pull out just the _ids

然后将返回的_id传递给remove方法:

db.collectionName.remove({_id: {$in: removeIdsArray}})

仅供参考:您不能从封顶集合中删除文档.

Mongodb相关问答推荐

筛选出嵌套数组中的记录Mongo DB聚合

聚合管道可以用于更新数据库中的文档吗?

如何向所有文档添加一个字段,其中前 100 个文档的值为 1,接下来的 100 个文档的值为 2,依此类推?

Kotlin 使用初级构造实例化公开类

我可以在 MongoDB 中将字段值设置为对象键吗?

在 MongoDB 中使用 findOneAndUpdate 有条件地更新/更新嵌入式数组

使用新字段插入数据或使用 updateOne mongodb 有条件地更新

如何在mongoDB中按嵌套文档分组( group by )

使用 EventSourcing(NodeJS、MongoDB、JSON)跨多个偶尔连接的客户端同步数据

使用模拟 MongoDB 服务器进行单元测试

你如何在 Kubernetes 上设置 Mongo 副本集?

MongoDB Java API:put() 与 append()

如何使用 MongoDB Compass 对数据进行排序

插入违反唯一索引的 MongoDB 文档时如何捕获错误?

没有参考选项的mongoose填充字段

如何在 NoSql 数据库(MongoDB)中强制执行外键?

如何在 golang 和 mongodb 中通过 id 查找

如何在 Ubuntu 上安装 mongodb-clients 最新版本?

MongoDB聚合框架的索引优化

MongoDB打印两点之间的距离