猫鼬中的findByIdAndRemove和findByIdAndDelete有什么区别?

时间:2019-01-07 20:12:02

标签: mongoose

文档here并未提供太多解释,说明为什么有两个不同的操作来完成相同的事情,所以我想知道它们之间有什么区别。为什么我会选择使用另一个?

4 个答案:

答案 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.