mongoose中的findByIdAndRemove和findByIdAndDelete有什么区别?

ct3nt3jp  于 2023-04-30  发布在  Go
关注(0)|答案(7)|浏览(275)

这里的文档没有提供很多解释,说明为什么有两个不同的操作来完成同一件事,所以我想知道它们之间的区别是什么。为什么我可以选择使用其中一个而不是另一个?

ljsrvy3e

ljsrvy3e1#

此函数与模型略有不同。findOneAndRemove()中的findOneAndRemove()成为MongoDB findAndModify()命令,而不是findOneAndDelete()命令。对于大多数 Mongoose 用例来说,这种区别纯粹是学究式的。你应该使用findOneAndDelete(),除非你有很好的理由不这样做。
官方网站 www.example.com

5sxhfpxr

5sxhfpxr2#

它们之间没有区别!^_^
让我们看看代码,在findByIdAndDelete()处,有一个注解:

// Note: same signatures as findByIdAndRemove

findByIdAndRemove()相同:

// Note: same signatures as findByIdAndDelete
h5qlskok

h5qlskok3#

MongoDB正在更新它的方法,就像任何其他编码语言或程序一样。如图所示:https://mongoosejs.com/docs/deprecations.html
remove()和findOneAndRemove()已被弃用,取而代之的是deleteOne()和deleteMany()。
我猜findByIdAndRemove()还没有被弃用,但它可能也会被弃用,因为它将只删除方法。

093gszye

093gszye4#

他们的评论没有区别。
两个函数都返回找到的文档(如果有的话)。

// Finds a matching document, removes it, passing the found document (if any) to the callback.
l3zydbqr

l3zydbqr5#

我得到了findByIdAndRemove返回已删除文档的原因& findByIdAndDelete不返回。如果我们想要删除的文档,那么我们可以使用findByIdAndRemove,否则可以使用findByIdAndDelete。
推荐:-如果不想得到删除的文档,那么必须使用findByIdAndDelete,因为它的快速原因不返回文档。

wz1wpwve

wz1wpwve6#

此函数与Model.findOneAndRemove()略有不同,findOneAndRemove()变成MongoDBfindAndModify()命令,而不是findOneAndDelete()命令。对于大多数 Mongoose 用例来说,这种区别纯粹是学究式的。你应该使用findOneAndDelete(),除非你有很好的理由不这样做。
阅读更多:docs

8zzbczxx

8zzbczxx7#

通过文档的_id字段发出MongoDB findOneAndDelete()命令。换句话说,findByIdAndDelete(id)是findOneAndDelete({ _id:id })。
通过文档的_id字段发出mongodb findAndModify remove命令。findByIdAndRemove(id,...)等效于findOneAndRemove({ _id:id },…

相关问题