在扩展用户模型上使用updateAttributes()时,loopback返回未更改的文档

时间:2018-04-24 16:33:23

标签: javascript node.js mongodb loopbackjs

在我的扩展用户模型'user'上调用updateAttributes成功,返回更新的文档,更新数据库,但如果我查询完全相同的文档,它将保持不变: (以远程方法调用)

models.user.findById(userId, function (err, userInstance) {

    console.log(userInstance)

    let newAttributes = {
        firstName:"Test"
    }

    userInstance.updateAttributes(newAttributes, function (err, newInstance) {

        console.log(newInstance)

        models.user.findById(userId, function (err, notUpdatedUser) {

        console.log(notUpdatedUser)
        });
    });
});
  • 第一个日志以firstName:'Original'

  • 打印我的用户
  • 第二个日志使用firstName'Test'

  • 打印我正确更新的用户
  • 第三个日志打印与第一个相同。

此外,数据库更改正确! 当我在我的数据源中检查我的条目时,updateAttributes被正确反映,最后我不知道旧数据来自何处。

任何暗示这里可能存在的潜在问题?我怀疑扩展用户模型但无处可挖掘

1 个答案:

答案 0 :(得分:0)

如果您使用的是loopback3(不确定loopback2),则此行为取决于updateOnLoad选项。您可以在此处找到一些信息:https://loopback.io/doc/en/lb3/Operation-hooks.html

  

默认情况下,create和updateAttributes不应用数据库更新   到模型实例返回回调,因此任何更改   由“装”钩子制成的被丢弃。要更改此行为,请设置a   每个模型选项updateOnLoad:true。