Javascript 在扩展用户模型上使用updateAttributes()时,环回返回未更改的文档
在我的扩展用户模型“user”上调用Javascript 在扩展用户模型上使用updateAttributes()时,环回返回未更改的文档,javascript,node.js,mongodb,loopbackjs,Javascript,Node.js,Mongodb,Loopbackjs,在我的扩展用户模型“user”上调用updateAttributes成功,返回更新的文档,更新数据库,但如果我查询完全相同的文档,它将保持不变: (在远程方法中调用) 第一个日志打印名为“Original”的我的用户 第二个日志打印正确更新的名为“Test”的用户 第三个日志与第一个日志打印相同 此外,数据库更改正确 当我检查数据源中的条目时,updateAttributes被正确地反映出来,最后我不知道旧数据来自哪里 有什么提示吗?这里潜在的问题是什么?我怀疑扩展用户模型,但如果您使用lo
updateAttributes
成功,返回更新的文档,更新数据库,但如果我查询完全相同的文档,它将保持不变:
(在远程方法中调用)
- 第一个日志打印名为“Original”的我的用户
- 第二个日志打印正确更新的名为“Test”的用户
- 第三个日志与第一个日志打印相同
有什么提示吗?这里潜在的问题是什么?我怀疑扩展用户模型,但如果您使用loopback3(不确定loopback2),则无处开始挖掘。此行为取决于
UpdateLoad
选项。你可以在这里找到一些信息:
默认情况下,创建和更新属性不应用数据库更新
返回到回调的模型实例,因此没有任何更改
由“装载的”挂钩制成的标签将被丢弃。若要更改此行为,请设置
每个模型选项UpdateLoad:true
听起来mongodb只是花了一段时间来“提交”更新更改,您可以通过等待几毫秒然后查询更新的模型来测试这一点。
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)
});
});
});