在NodeJS中放置函数来操作MongoDB不起作用

时间:2018-05-17 21:34:59

标签: node.js mongodb rest

有人知道,如何在NodeJS中实现put函数来操作MongoDB集合?

我看到很多人使用app.getapp.post来使用db.collection.updateOne(),但我不相信这是这样做的正确方法。

不幸的是,当我使用app.put时,我没有收到错误,但我的收藏中仍未发生任何变化。数据仍然相同。

请参阅下面的代码:

  app.put('/user/:id', (req, res) => {
    const id = req.params.id;
    const details= {'_id' : new Object(id)};
    const user = {username: req.body.username, password: req.body.password};

    db.collection('users').findOneAndUpdate(details,{$set: user},{new: true}, function (err, item) {
        if (err) {
            res.send({'error':'An error has occured'});
        } else {
            res.send(user)
        }
    });
});

1 个答案:

答案 0 :(得分:1)

错误在于我将ID定义为Object而不是ObjectID。 由于MongoDB是Type sensetive,因此没有发现ID是“put”。

所以而不是:

const details= {'_id' : new Object(id)};

必须是:

const details= {'_id' : new ObjectID(id)};