【发布时间】:2021-01-30 15:32:48
【问题描述】:
我在 mongodb 中使用 mongoose,在更新文档时,我首先找到文档,修改生成的文档对象,然后在文档上执行 .save()。
现在我想在保存操作中添加一个聚合管道,以便更好地控制文档响应,所以我想知道这是否可能。
我了解到更新查询可以附加管道,但这是否也适用于保存操作?
【问题讨论】:
我在 mongodb 中使用 mongoose,在更新文档时,我首先找到文档,修改生成的文档对象,然后在文档上执行 .save()。
现在我想在保存操作中添加一个聚合管道,以便更好地控制文档响应,所以我想知道这是否可能。
我了解到更新查询可以附加管道,但这是否也适用于保存操作?
【问题讨论】:
就我在当前版本的 MongoDB(4.4) 中所关心的而言,唯一允许聚合管道的方法是那些涉及 updateAndModify 和 Update 的方法。因此,猫鼬可能给这个主题带来的限制使用。在您的情况下,我建议您将聚合管道与Model.findOneAndUpdate() 一起使用。这是您可能会遵循的示例:example of aggregate using Model.findOneAndUpdate()
此外,您可能会注意到这是 MongoDB 而不是 Mongoose 的文档。我倾向于发现很难在 Mongoose 的文档中找到更具体的用例的有用信息,例如在 MongoDB 中的链接。它将与 Mongoose 的模型一样工作,所以试一试!
【讨论】: