Mongoose中findOneAndDelete()与findOneAndRemove()的区别是什么?
我来帮你搞懂Mongoose里findOneAndDelete()和findOneAndRemove()这俩方法的区别哈~
其实核心区别在于它们对应的MongoDB底层命令不一样:
findOneAndRemove()会转换为MongoDB的findAndModify()命令findOneAndDelete()则对应MongoDB的findOneAndDelete()命令
不过官方文档也提到,对于大多数Mongoose的使用场景来说,这种区别其实没啥实际影响,属于学术层面的差异。而且官方明确给出了建议:
Query.prototype.findOneAndDelete()
该函数与Model.findOneAndRemove()略有不同:findOneAndRemove()会转换为MongoDB的findAndModify()命令,而前者对应findOneAndDelete()命令。对于大多数Mongoose使用场景,这种区别纯粹是学究式的。除非有充分的理由,否则你应该使用findOneAndDelete()。
总结下来,日常开发里直接用findOneAndDelete()就足够了,除非你有特定的需求必须依赖findOneAndRemove()的底层逻辑。
内容的提问来源于stack exchange,提问作者g1ji
相关产品推荐
相关产品推荐

