findOneAndDelete()和findOneAndRemove()之间的区别

G4u*_*rav 25 mongoose mongodb express

我不能够区分findOneAndDelete()findOneAndRemove()猫鼬文件建立.

Query.prototype.findOneAndDelete()

此函数与Model.findOneAndRemove()略有不同,因为findOneAndRemove()变为MongoDB findAndModify()命令,而不是findOneAndDelete()命令.对于大多数猫鼬用例,这种区分纯粹是迂腐的.你应该使用findOneAndDelete(),除非你有充分的理由不这样做.

小智 8

TLDR:除非有充分的理由,否则您应该使用 findOneAndDelete()。


更长的答案:

从 findOneAndDelete 的猫鼬文档:

此函数与 Model.findOneAndRemove() 略有不同,因为 findOneAndRemove() 变成了 MongoDB findAndModify() 命令,而不是 findOneAndDelete() 命令。对于大多数猫鼬用例,这种区别纯粹是迂腐的。您应该使用 findOneAndDelete() ,除非您有充分的理由不这样做。

Mongoose 文档 findOneAndDelete

  • “你应该使用 findOneAndDelete() ,除非你有充分的理由不这样做”,理由是什么? (2认同)

Xco*_*ode 1

在 mongoose 中,findOneAndDelete 的工作方式与 findOneAndRemove 相同。它们都通过 JSON 中的属性查找对象,然后继续删除它,并在删除后返回一次对象。当您使用本机 mongodb 作为数据库时,findOneAndDelete 可能对您有用,但在 mongoose 的情况下,它已被弃用,我可能建议您使用 findOneAndDelete 根据目前最新的 mongoose 和 nodejs 配置来执行操作。https://github.com/Automattic/mongoose/issues/6880