node.js - 在 updateOne() 之后获取更新值

标签 node.js mongodb express mongoose

是否可以获取所有更新的值/调用 updateOne() 后存在差异的值

 _.each(gameResult, function(gameResult){
    bulk.find({"user" : gameResult.user, "section" : gameResult.section , "code" : gameResult.code}).upsert().updateOne(gameResult);
  })

想象一下更新之前我在数据库中的值是:

1, 1, 1, 1

游戏结果是:

1, 2, 1 , 3

所以我的数据库已更新:1,2,1,3

是否有可能获取所有已更改的值,那么这里我如何获取我的两个对象 2 和 3 因为我在代码中需要它。

最佳答案

您正在寻找findAndModify .

这会执行更新,同时还会从数据库返回现有文档。默认情况下,此方法返回应用更改之前的文档(可以使用 new:true 选项更改此行为)。这样您就可以轻松地将返回的文档与本地文档进行比较以找出差异。

遗憾的是,批量操作不支持 findAndModify,因此您需要逐个文档进行操作。

关于node.js - 在 updateOne() 之后获取更新值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41615214/

相关文章:

javascript - 在 RxJS 6 中取消订阅?

node.js - `repository.create` 去除既是数组又是嵌入对象的列的值

javascript - 在 Angular 中使用源映射生成生产版本 - CLI

c# - 如何将 MongoDB 驱动程序与 C# ASP.NET Core API 框架一起使用?

javascript - 为什么只有当我更改被调用函数语法时,我的异步函数才能正常工作?

linux - 在 RedHat 上安装 MongoDB 时出现错误

node.js - 在 Sequelize 中使用bulkCreate 插入批量数据时出现错误

javascript - 从#each 输入列表中获取特定用户

javascript - CasperJS 中的 Express app.get() 等效项

node.js - 使用 Mongoose 时 MongoDB 写入问题