findOneAndDelete()
Model.findOneAndDelete(filter[, options][, callback])
参数一:filter
参数二:options
sort:如果查询条件找到多个文档,则设置排序顺序以选择要删除哪个文档。select/projection:指定返回的字段。rawResult:如果为true,则返回来自 MongoDB 的原生结果。
参数三:callback
- 没有符合
filter的数据时,返回null。 filter为空或{}时,删除第一条数据。- 删除成功返回
{}形式的原数据。
findByIdAndDelete()
Model.findByIdAndDelete(id[, options][, callback])
id
Model.findByIdAndDelete(id) 相当于 Model.findOneAndDelete({ _id: id })。
callback
- 没有符合
id的数据时,返回null。 id为空或undefined时,返回null。- 删除成功返回
{}形式的原数据。
deleteMany()
Model.deleteMany(filter[, options][, callback])
filter
删除所有符合 filter 条件的文档。
callback
callback(err, rawResponse)
err:错误信息rawResponse:Mongo 返回的原生的response
let result = await Model.deleteMany({name: 'dora'})
// { n: 1, ok: 1, deletedCount: 1 }
n:要删除的文档数量。deletedCount:删除的文档数量。
deleteOne()
Model.deleteOne(filter[, options][, callback])
filter
删除符合 filter 条件的第一条文档。
callback
callback(err, rawResponse)
err:错误信息rawResponse:Mongo 返回的原生的response
let result = await Model.deleteOne({name: 'dora'})
// { n: 1, ok: 1, deletedCount: 1 }
n:要删除的文档数量。deletedCount:删除的文档数量。
findOneAndRemove()
Model.findOneAndRemove(filter[, options][, callback])
用法与 findOneAndDelete() 一样,一个小小的区别是 findOneAndRemove() 会调用 MongoDB 原生的 findAndModify() 命令,而不是 findOneAndDelete() 命令。
建议使用 findOneAndDelete() 方法。
findByIdAndRemove()
Model.findByIdAndRemove(id[, options][, callback])
id
Model.findByIdAndRemove(id) 相当于 Model.findOneAndRemove({ _id: id })。
remove()
Model.remove(filter[, options][, callback])
从集合中删除所有匹配 filter 条件的文档。要删除第一个匹配条件的文档,可将 single 选项设置为 true。
callback 返回 rawResponse 原生的结果。
let result = await Model.remove({name: 'dora'})
// { n: 1, ok: 1, deletedCount: 1 }