【发布时间】:2014-03-11 11:45:48
【问题描述】:
这是我的两个模式
var reviews = new Schema({
scenarioId: { type: Schema.Types.ObjectId, required: true},
authorId: { type: Schema.Types.ObjectId , required:true },
reviewNote: String,
subReviews: [subReviewSchema],
active: {type: Boolean, default: true},
display: {type: Boolean, default: true},
date : {type: Date, default: Date.now()}
});
以及用于子评论的 subscheA
var subReviews = new Schema({
authorId: { type: Schema.Types.ObjectId, required:true },
subReviewNote: String,
date: {type: Date, default: Date.now()},
active: {type: Boolean, default: true},
display: {type: Boolean, default: true}
});
这是我更新文档的代码
exports.addSubReview = function (req, res) {
var id = req.params.id;
var update = req.body;//scenario Id
Review.findById(id, function (err, obj) {
if (err || !obj) { return res.send(404, { error: err.message }); }
obj.subReviews.push(update);
obj.save(function (err) {
if (err) { return res.send(404, { error: err.message }); }
return res.send(200, obj);
});
});
};
由于某种原因,尽管每当我向此代码发送 http 帖子时,结果只会添加我在帖子请求中发送的内容,而不是 _id _v 或我希望 mongoose/mongodb 添加为样板的任何其他内容。这是我数据库中的示例文档
{
"__v": 2,
"_id": "531e3214a30f5f8427830a97",
"authorId": "52fd0e6df8352c184b000004",
"reviewNote": "aaaaaaaaaaaaaaaaa",
"scenarioId": "531a5b80af15cffc051cea67",
"date": "2014-03-10T21:37:05.230Z",
"display": true,
"active": true,
"subReviews": [
{
"subReviewNote": "This is a subReview",
"authorId": "52fd0e6df8352c184b000004"
},
{
"subReviewNote": "This is a subReview",
"authorId": "52fd0e6df8352c184b000004"
}
]
}
关于为什么 _id 没有被添加到我在 subReviews 中的 subDocs 的任何想法?
【问题讨论】: