【发布时间】:2019-06-02 12:21:29
【问题描述】:
文档here 没有提供太多解释为什么有两种不同的操作来完成同一件事,所以我想知道它们之间的区别是什么。为什么我会选择使用其中一个?
【问题讨论】:
标签: mongoose
文档here 没有提供太多解释为什么有两种不同的操作来完成同一件事,所以我想知道它们之间的区别是什么。为什么我会选择使用其中一个?
【问题讨论】:
标签: mongoose
MongoDB 正在更新其方法,就像任何其他编码语言或程序一样。正如你在这里看到的:https://mongoosejs.com/docs/deprecations.html
remove() 和 findOneAndRemove() 已被弃用,取而代之的是 deleteOne() 和 deleteMany()。
我猜 findByIdAndRemove() 还没有被弃用,但可能它也将被弃用,以便转换为仅删除方法。
【讨论】:
他们的评论没有区别。
如果有的话,这两个函数都会返回找到的文档。
// Finds a matching document, removes it, passing the found document (if any) to the callback.
【讨论】:
它们之间没有区别! ^_^
我们看一下代码,在findByIdAndDelete(),有一个注释:
// Note: same signatures as findByIdAndRemove
和findByIdAndRemove()一样:
// Note: same signatures as findByIdAndDelete
【讨论】:
const add = (a, b) => a + b;const multiply = (a, b) => a * b; 它们都具有相同的签名,因为它们每个都将两个数字作为参数并返回一个数字,但是一个是将这些数字相加并另一个是倍增他们
// Note: same signatures as findByIdAndRemove。如果您改为发布代码块,或者只是提到代码完全相同,就不会有任何争论。
此函数与 Model.findOneAndRemove() 略有不同,因为 findOneAndRemove() 变成了 MongoDB findAndModify() 命令,而不是 findOneAndDelete() 命令。对于大多数猫鼬用例,这种区别纯粹是迂腐的。你应该使用 findOneAndDelete() 除非你有充分的理由不这样做。
官网https://mongoosejs.com/docs/api.html#model_Model.findOneAndDelete
【讨论】:
findOneAndDelete的“充分理由”?