3

目前正在做一个在线课程来学习一些 Node.js、Express 和 MongoDB。

在本课程中有一个 api 部分,他们教你做简单的事情,但我遇到了一个问题,课程视频显示他更新项目的名称,并且 api 可以更新更多字段,他的字段保持有值,我的字段实际上最终为空。

代码是

app.put('/products/:id', function(req, res){
    db.products.findAndModify({query: {_id: mongojs.ObjectId(req.params.id)},
        update:{$set:{
            name: req.body.name,
            category: req.body.category,
            description: req.body.description
        }},
        new: true
}, function(err, doc){
        if(err){
            res.send(err);
        } else {
            console.log('Updating Product...');
            res.json(doc);
        }
    });
});

谁能向我解释一下,如果只更新名称,我如何避免说类别和描述最终为空?

4

1 回答 1

1

如果req.body.category并且req.body.descriptionundefined您的代码中:

 update:{$set:{
            name: req.body.name,
            category: req.body.category,
            description: req.body.description
 }},

您的字段将设置为null匹配的文档。

在更新中查看mongodb set null并将使用 mongoose 的 mongo 对象的字段设置为空

于 2015-11-09T20:53:47.283 回答