node.js - Mongoose 中的 concat 和 save 没有任何作用

标签 node.js mongoose

我正在使用 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/

相关文章:

node.js - 列 ID 的未设置值无效

javascript - MongoDB 聚合框架 - 如何查询平均值

javascript - 将现有项目推送到新创建项目的嵌套数组中

node.js - 如何使用 body-parser 使用 nodejs 和 mongoose 将嵌套对象数组插入/添加到 mongodb 数据库中

javascript - Mongoose 按 createdAt 排序

node.js - 了解 Mongoose [Schema.Types.Mixed]

node.js - MongoDB/ Mongoose : find(query) and aggregate([ $match: query ]) results differ when using dates and $gte/$lte

java - 运行平均种子时 jasmine_node 失败

javascript - 我如何在 Meteor 中访问 process.env?

javascript - 使用 Jest 测试时,类型错误 : AWS. DynamoDB.DocumentClient 不是构造函数