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 }
相關文章
相關標籤/搜索