从猫鼬集合中删除最新创建的文档
问题描述:
我目前正在使用它,但它删除了具有相同名称的所有文档。从猫鼬集合中删除最新创建的文档
Reservation.remove({name:req.body.name}, function(err) {
if (err) throw err;
});
答
在新的MongoDB的版本(3.2以上版本)有一个findOneAndDelete
方法,所以在mongoshell你可以拨打:
db.collection.findOneAndDelete({}, {sort: {_id: -1}})
如果使用MongoDB的IDS,它有一个时间戳这会工作“baked-在'。否则,你需要一些其他的时间字段进行排序。
你也可以使用this方法与Mongoose(从你的文章我不能确定你确定使用哪个mongodb客户端)。
您如何识别最新文档?你有时间戳字段吗?如果是,你可以使用类似'db.collection.findOneAndDelete( {name:“some name”}, {sort:{“ts”:-1}} ) – Veeram