你怎么知道 Model.prototype.save() 函数对 mongoose 的参数?

Posted

技术标签:

【中文标题】你怎么知道 Model.prototype.save() 函数对 mongoose 的参数?【英文标题】:How do you know the parameters Model.prototype.save() function takes on mongoose? 【发布时间】:2021-06-21 00:15:18 【问题描述】:

所以,我知道保存函数的回调将至少接受两个参数,错误和保存的文档。但是当我尝试在documentation 上检查时,我看到的关于回调的唯一信息是

[fn] «函数»可选回调

问题是,为什么 Mongoose 会忽略回调参数的信息?

我读到somewhere else 甚至可以使用第三个参数“受影响的行数”。我怎么知道这一点,或者如果官方文档中没有列出它是否是真的?

这些问题的目的是了解如何搜索文档并了解这样做时会发生什么。谢谢!

【问题讨论】:

【参考方案1】:

猫鼬文档并不是最好的这些细节。 有些东西是在MongoDB Node Driver 中实现的,而有些东西无论出于何种原因都没有记录在案。我猜这里没有解释回调的原因是因为它与许多方法中使用的回调相同,而且他们不希望重复使文档变大。

例如,findOneAndRemove 文档确实提供了回调参数。但不清楚所有这些方法的回调签名是否相同。

回调签名

function(error, doc) 
  // error: any errors that occurred
  // doc: the document before updates are applied if `new: false`, or after updates if `new = true`

当文档失败时,您的下一个选择是阅读源代码。 Mongoose 在github,经过一番挖掘,我在model.js 文件中找到了save implementation。

Githubs 搜索不适用于代码,除非您要搜索的函数有一个很好的唯一名称。如果您将经常使用该库,我建议您克隆存储库。然后使用您熟悉的任何文本编辑器/IDE 进行搜索。

由于该项目是开源的,我建议您在破译文档/代码后,提交包含文档更新的拉取请求,以便下一个人更清楚

【讨论】:

谢谢你,这是一个非常完整和有用的回复。我很感激!

以上是关于你怎么知道 Model.prototype.save() 函数对 mongoose 的参数?的主要内容,如果未能解决你的问题,请参考以下文章

你怎么知道你显示的内容是完全绘制在屏幕上的?

你怎么知道 QMutex 是不是被锁定?

阅读不完整的 API 文档——如果没有列出,你怎么知道你的所有 [选项] 是啥?

你怎么知道微控制器何时复位?

你怎么知道main是不是已经退出?

Apple 怎么知道你在使用私有 API?