【问题标题】:Can you add an aggregate pipeline to document .save() action?您可以将聚合管道添加到文档 .save() 操作吗?
【发布时间】:2021-01-30 15:32:48
【问题描述】:

我在 mongodb 中使用 mongoose,在更新文档时,我首先找到文档,修改生成的文档对象,然后在文档上执行 .save()

现在我想在保存操作中添加一个聚合管道,以便更好地控制文档响应,所以我想知道这是否可能。

我了解到更新查询可以附加管道,但这是否也适用于保存操作?

【问题讨论】:

    标签: mongodb mongoose


    【解决方案1】:

    就我在当前版本的 MongoDB(4.4) 中所关心的而言,唯一允许聚合管道的方法是那些涉及 updateAndModify 和 Update 的方法。因此,猫鼬可能给这个主题带来的限制使用。在您的情况下,我建议您将聚合管道与Model.findOneAndUpdate() 一起使用。这是您可能会遵循的示例:example of aggregate using Model.findOneAndUpdate() 此外,您可能会注意到这是 MongoDB 而不是 Mongoose 的文档。我倾向于发现很难在 Mongoose 的文档中找到更具体的用例的有用信息,例如在 MongoDB 中的链接。它将与 Mongoose 的模型一样工作,所以试一试!

    【讨论】:

    • 感谢您的回复。我想我知道我无法通过保存来做到这一点,因为我找不到任何关于它的信息。将研究您提到的示例。
    • 不客气。根据您的用例场景,您可能还需要检查 map-reduce。玩得开心! docs.mongodb.com/manual/core/map-reduce
    猜你喜欢
    • 1970-01-01
    • 2012-07-30
    • 2021-11-16
    • 2021-01-03
    • 1970-01-01
    • 2023-04-02
    • 2013-04-23
    • 2010-09-15
    • 2021-07-13
    相关资源
    最近更新 更多