📜  mongoose | findOneAndRemove()函数(1)

📅  最后修改于: 2023-12-03 15:17:42.703000             🧑  作者: Mango

Mongoose | findOneAndRemove()函数

在Mongoose中,findOneAndRemove()函数用于查找满足条件的第一个文档,将其删除,并返回已删除文档的副本。

语法
Model.findOneAndRemove(conditions, [options], [callback])
参数
  • conditions:(必需)删除条件。例如:{_id: '000000000000000000000001'}
  • options:(可选)findOneAndRemove()函数也接受一些选项(如sortfields等)。
  • 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中的文档删除变得轻而易举。它允许您根据指定条件删除集合中的文档,并返回删除文档的副本。此外,它也可以与一些选项一起使用,例如sortfields等,以便更好地控制查询和返回结果。