Mongodb POST响应返回0

Mongodb POST response returns 0?

本文关键字:返回 响应 POST Mongodb      更新时间:2023-09-26

我让它在事故中工作,不添加res.json(doc),但我发现,当我发出POST请求时,我需要发送响应,自从我添加了响应,我得到0或null?

add: function(req, res) {
    //var newPlayer = new models.Team({ _id: req.params.tid }, { players: req.body });
    models.Team.update({ _id: req.params.tid }, { $addToSet: { players: req.body} }, function(err, newPlayer){
            if (err) {
                res.json({error: 'Error.'});
            } else {
                res.json(newPlayer);
            }
    });
},

也尝试了findOneAndUpdate,但我的POST请求显示0或null的响应。

我正在更新一个集合内的对象数组,它是嵌套的。下面是SCHEMA,只是为了清楚。

var Team = new Schema({
    team_name:   { type: String },
    players: [
        {
            player_name:  { type: String },
            points:       { type: Number },
            made_one:     { type: Number },
            made_two:     { type: Number },
            made_three:   { type: Number },
            missed_one:   { type: Number },
            missed_two:   { type: Number },
            missed_three: { type: Number },
            percentage:   { type: Number },
            assists:      { type: Number },
            rebounds:     { type: Number },
            steals:       { type: Number },
            blocks:       { type: Number },
            fouls:        { type: Number },  
            feed:         { type: String },
            facebook_id:  { type: Number }
        }
    ]
});

所以我的问题是有人知道为什么我得到的是响应0吗?

更新方法不返回响应中的文档。回调参数是(err, numAffected),其中numAffected是"update"语句触及的文档数量,可以进行"批量"(或多)处理。

您想要的是 findByIdAndUpdate() findOneAndUpdate() 。根据您提供的参数,这些方法返回原始文档或修改后的文档。

add: function(req, res) {
    models.Team.findByIdAndUpdate(
        req.params.tid,
        { $addToSet: { players: req.body } },
        function(err, newPlayer){
            if (err) {
                res.json({error: 'Error.'});
            } else {
                res.json(newPlayer);
            }
        }
    );
},