【问题标题】:Efficient Alternative for .save() on existing Model.Document现有 Model.Document 上 .save() 的有效替代方案
【发布时间】:2021-08-13 12:18:27
【问题描述】:

我对退出文档的 .save 有一些疑问。

我正在寻找更新文档的有效解决方案。

我听说过 .updateOne() ,但我对它感到陌生,因为我必须解析出应该更新的字段,然后解析出整个缓存文档中的值。

.save() ,保存我所有的工作,但我正在寻找替代方案,因为发生了 parallelsaveerror,当我有许多快速请求要保存并且我必须将文档缓存为“猫鼬文档”时(我不之前想取它),这使用了很多内存。

提前谢谢!

Version:
mongoose: ^5.10.2,
nodejs: v14.15.5
mongodb: node driver on mongodb atlas

【问题讨论】:

    标签: node.js database mongodb mongoose mongoose-schema


    【解决方案1】:

    这是来自 moongose 的 bulkWrite 操作

    let queryOperation = [];
          queryOperation.push({
              updateOne: {
                filter: hereGoesWhereCondition, //{_id: user._id}
                update: data, // object of fields to update
              }
            });
          const name = await model.bulkWrite(queryOperation); //model is the table in which you want to update
    

    【讨论】:

    • 重点是,我不想解析出要手动更新的字段。当我有两个版本的文档时,是否有任何更简单的解决方案或任何功能。我可以比较它,然后它会自动为我提供要更新的字段?
    • 我猜不,可能有人想出了一些技巧
    • 但一定有一些东西,猫鼬库在后端做了什么
    猜你喜欢
    • 2011-09-24
    • 2016-10-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多