我正在使用Mongoose 4.9.1和MongoDB 2.2.33。由于不再支持push,因此我使用concat将元素添加到模型数组中。 我确实保存了,一切正常,但是更新后的对象没有添加到数组中的元素。
hotel.reviews.concat([{
name : req.body.name,
rating : parseInt(req.body.rating, 10),
review : req.body.review
}]);
hotel.save(function(err, hotelUpdated) {
if (err) {
console.log("Error adding review");
res
.status(500)
.json(err);
} else {
res
.status(201)
.json(hotelUpdated);
//.reviews[hotelUpdated.reviews.length - 1]
}
});
答案 0 :(得分:1)
您尝试过:
const item = {
name : req.body.name,
rating : parseInt(req.body.rating, 10),
review : req.body.review
};
HotelModel.
findOneAndUpdate({ _id : hotel._id}, {$push:{reviews:item},{new : true},(err, doc) => {
if(err){
console.log("Something wrong when updating data!");
}
console.log(doc);
});