mongoose 系列之四 delete 删除

findOneAndDelete()

Model.findOneAndDelete(filter[, options][, callback])html

参数一:filter

查询语句和 find() 同样segmentfault

参数二:options

  • sort:若是查询条件找到多个文档,则设置排序顺序以选择要删除哪一个文档。
  • select/projection:指定返回的字段。
  • rawResult:若是为 true,则返回来自 MongoDB 的原生结果。

参数三:callback

  • 没有符合 filter 的数据时,返回 null
  • filter 为空或 {} 时,删除第一条数据。
  • 删除成功返回 {} 形式的原数据。

findByIdAndDelete()

Model.findByIdAndDelete(id[, options][, callback])api

id

Model.findByIdAndDelete(id) 至关于 Model.findOneAndDelete({ _id: id })mongoose

callback

  • 没有符合 id 的数据时,返回 null
  • id 为空或 undefined 时,返回 null
  • 删除成功返回 {} 形式的原数据。

deleteMany()

Model.deleteMany(filter[, options][, callback])code

filter

删除全部符合 filter 条件的文档。htm

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])rem

filter

删除符合 filter 条件的第一条文档。文档

callback

callback(err, rawResponse)get

  • 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 }
相关文章
相关标签/搜索