我正在使用 Mongoose 4.9.1 和 MongoDB 2.2.33。由于不再支持推送,因此我使用 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]
}
});
最佳答案
你尝试过吗:
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);
});
关于node.js - Mongoose 中的 concat 和 save 没有任何作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56905848/