[英]MongoDb Why isn't the data being stored in the database?
我有这个 mongodb 模型:
let businessLineDashboardRow = new Schema({
ref: {
type: String
},
riskstatements: {
type: String
},
maximpact: {
type: String
},
controleffectiveness: {
type: String
},
recommendedriskrating: {
type: String
},
frequency: {
type: String
},
impact: {
type: String
},
validatedreviewriskrating: {
type: String
},
rationalforriskadjustment: {
type: String
}
})
我从一个简单的文档插入开始:
db.businesslinedashboards.find()
{
"_id" : ObjectId("5d10a0a6df45c71a6c9dab26"),
"ref" : "R13", "riskstatements" : "blablablablablabla",
"maximpact" : "I AM TRYING TO CHANGE THIS VALUE",
"controleffectiveness" : "blablablablablabla",
"recommendedriskrating" : "blablablablablabla",
"frequency" : "blablablablablabla",
"impact" : "blablablablablabla",
"validatedreviewriskrating" : "blablablablablabla",
"rationalforriskadjustment" : "blablablablablabla", "__v" : 0
}
您可能已经注意到,我正在尝试通过以下代码更改 maximpact 的值:
BusinessLineDashboard.findOne({
ref: 'R13'
}, (err, rowData) => {
if (err)
console.log(err);
else {
rowData.maximpact = 'THE DATA GETS STORED IN THE DB SUCCESFULLY'
console.log('rowData: ', rowData.maximpact);
//In the console: rowData: THE DATA GETS STORED IN THE DB SUCCESFULLY
}
});
所以我虽然它奏效了。 但是,当我发送第二个查询来检索表数据时,我注意到没有任何变化:
function getTableData(dbtable, callback) {
dbtable.find((err, tableData) => {
if (err)
console.log(err);
else {
callback(tableData)
}
}).then((tableData) => {});
}
getTableData(BusinessLineDashboard, (BLDtable) => {
BLDtable.forEach(rowData => {
if(rowData.ref==='R13'){
console.log('BLDrow: ', rowData.maximpact);
//In the console: BLDrow: I AM TRYING TO CHANGE THIS VALUE
}
})
})
所以实际上什么都没有改变。 我认为这与 JS 的异步特性有关。
知道为什么会发生这种情况,也许如何解决?
谢谢!!
您必须更新与 ref:'R13' 相对应的 BusinessLineDashboard 表中的 maximpact。 没有更新你怎么能改变这个值。
使用 BusinessLineDashboard.update({ref: 'R13'},{maximpact : '数据成功存储在数据库中'})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.