在我的NodeJS代码中,我使用猫鼬来处理数据库调用。
在我的代码中,下面有几行代码,这些代码将首先更新“ NewsReport”记录,并根据响应文档,将“ News”记录更新为文档的newsId。这是我的代码:
NewsReport.findOneAndUpdate({ _id: req.params.reportId }, { $set: { 'status': statusReceived } })
.then(result => {
News.findOneAndUpdate({ _id: result.newsId }, { $set: { 'blocked': true } })
.then(updatedNews => {
res.status(200).json({
message: 'Successfully updated report'
});
});
} else {
res.status(200).json({
message: 'Successfully updated report'
});
}
})
我的NewsReport架构如下(在第一次更新调用后将返回的文档:
var newsReportSchema = mongoose.Schema({
newsId: { type: mongoose.Schema.Types.ObjectId, ref: 'News', required: true },
creator: { type: mongoose.Schema.Types.ObjectId, ref: 'User', required: true },
type: { type: String, enum: Constants.reportTypes, required: true },
status: { type: String, enum: Constants.reportStatus, default: 'None' }
};
module.exports = mongoose.model('NewsReport', newsReportSchema);
失败,因为“ result.newsId”返回一个对象。如何基于文档对象使用“ findAndUpdate”?