我使用 find 来获取给我猫鼬记录的记录,然后我使用 toJson() 转换为对象,以便我可以修改字段。
body=req.body;
const data = model.find({target: body.target});
我得到带有这样字段的猫鼬文档.... ['$__', 'isNew', 'errors', '$locals', '$op', '_doc', '$init' ]
所以我使用 toJSON() 方法将对象转换为普通对象
const Obj = data[0].toJSON();
现在我正在创建一个更新对象来设置...
const updateObj = { [body[str]] = parseFloat(Obj[num_1]) + parseFloat(body[num_1])
}
model.findOneAndUpdate({目标: body.target},{ $set:updateObj
}
这是我的代码结构,我无法更新字段,但在控制台中数据正常,提前感谢
我在控制台中得到了正确的结果,但 mongodb 无法识别这些字段,是因为我转换为 JSON 并更新了它吗?,如果不是,请让我知道我哪里出错了
如果您使用的是 mongodb atlas, 那么这里的问题可能与您从数据库收集数据的方式有关。
数据在控制台中正确记录的事实表明您与数据库的连接是正确的,并且工作正常,只是在脚本结束之前执行速度不够快。 (它可能在“网络”选项卡中可见)
从数据库获取数据需要是异步函数,因为从托管数据库获取数据需要一些时间, 因此,您需要使用 async/await 关键字来确保您的 mongodb 查询返回一个承诺。
举个例子,
async getData(){
const data = await model.find({target: body.target})
}