📅  最后修改于: 2023-12-03 15:17:42.703000             🧑  作者: Mango
在Mongoose中,findOneAndRemove()
函数用于查找满足条件的第一个文档,将其删除,并返回已删除文档的副本。
Model.findOneAndRemove(conditions, [options], [callback])
conditions
:(必需)删除条件。例如:{_id: '000000000000000000000001'}
。options
:(可选)findOneAndRemove()
函数也接受一些选项(如sort
、fields
等)。callback
:(可选)回调函数,将在查询完成后执行,并将错误(如果有)和已删除文档作为参数传递给回调函数。Query
对象,它执行查询并返回已删除文档的副本。当查询完成时,将触发回调函数。下面的示例演示了如何使用findOneAndRemove()
函数在Mongoose中删除文档。
const mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/test', { useNewUrlParser: true });
const User = mongoose.model('User', { name: String, age: Number });
// 删除单个文档
User.findOneAndRemove({ name: 'Tom' }, function (err, deletedUser) {
if (err) throw err;
console.log(deletedUser); // 输出:{ name: 'Tom', age: 30, _id: 60a1717f7bedaa1d75b7df9c }
});
// 删除多个文档
User.deleteMany({ name: 'Tom' }, function (err, result) {
if (err) throw err;
console.log(result); // 输出:{ n: 2, ok: 1, deletedCount: 2 }
});
findOneAndRemove()
函数使Mongoose中的文档删除变得轻而易举。它允许您根据指定条件删除集合中的文档,并返回删除文档的副本。此外,它也可以与一些选项一起使用,例如sort
、fields
等,以便更好地控制查询和返回结果。