3

現在、いくつかの Node.js、Express、MongoDB を学ぶためのオンライン コースを行っています。

このコースには、簡単なことを教えてくれるAPIセクションがありますが、私は問題に遭遇しました.コースビデオは彼がアイテムの名前を更新していることを示しています.APIはより多くのフィールドを更新することを可能にします.彼のフィールドは保持されます.そこに値があり、私のフィールドは実際にはnullになります。

コードは

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);
        }
    });
});

名前だけが更新された場合にカテゴリと説明がnullになるのを避ける方法を誰かに説明できますか?

4

1 に答える 1

1

コード内にreq.body.categoryreq.body.descriptionがある場合:undefined

 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 に答える