Mongo删除了最后的文件

Val*_*inH 12 mongodb

我想知道如何删除,例如,我的集合中插入的最后100个文档.

贝壳怎么可能?

bcm*_*360 15

您应该能够使用的_id排序上的最后插入,如答案概述这里:

db.coll.find().sort({_id:-1}).limit(100);
Run Code Online (Sandbox Code Playgroud)

看起来像使用的标准蒙戈删除操作的限制,虽然不支持,所以你可能会使用这样的删除100个文档:

for(i=0;i<100;i++) {
    db.coll.findAndModify({query :{}, sort: {"_id" : -1}, remove:true})
}
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参阅文档findAndModify.

  • 这个答案有一些问题.1)你假设他的_id值是单调递增的.但如果它们是2)你建议运行一个循环100次,而不是只做一个删除语句db.coll.remove({_ id:{$ gte:<value-of-100th-id>} (5认同)
  • 他们指出*if*你使用_id - 但是不要忘记人们可以提供他们自己的_id值,这些值可能会以不同方式分发,并且_id也会在客户端生成 - 如果他们有多个客户端,他们的某些时钟*可能*是关闭(!) (2认同)