文档here并未提供太多解释,说明为什么有两个不同的操作来完成相同的事情,所以我想知道它们之间有什么区别。为什么我会选择使用另一个?
答案 0 :(得分:13)
它们之间没有区别! ^ _ ^
让我们看一下代码,在findByIdAndDelete()
上有一条注释:
// Note: same signatures as findByIdAndRemove
和findByIdAndRemove()
相同:
// Note: same signatures as findByIdAndDelete
答案 1 :(得分:1)
此函数与Model.findOneAndRemove()稍有不同,因为findOneAndRemove()成为MongoDB findAndModify()命令,而不是findOneAndDelete()命令。对于大多数猫鼬用例,这种区别纯粹是腐的。除非有充分的理由,否则应使用findOneAndDelete()。
官方网站https://mongoosejs.com/docs/api.html#model_Model.findOneAndDelete
答案 2 :(得分:0)
MongoDB 正在更新其方法,就像任何其他编码语言或程序一样。正如你在这里看到的:https://mongoosejs.com/docs/deprecations.html
remove() 和 findOneAndRemove() 已被弃用,取而代之的是 deleteOne() 和 deleteMany()。
我猜 findByIdAndRemove() 还没有被弃用,但可能它也将被弃用以过渡到仅删除方法。
答案 3 :(得分:-1)
它们之间的注释没有区别。
两个函数都将返回找到的文档(如果有)。
// Finds a matching document, removes it, passing the found document (if any) to the callback.