有人知道,如何在NodeJS中实现put函数来操作MongoDB集合?
我看到很多人使用app.get
或app.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)
}
});
});
答案 0 :(得分:1)
错误在于我将ID定义为Object而不是ObjectID。 由于MongoDB是Type sensetive,因此没有发现ID是“put”。
所以而不是:
const details= {'_id' : new Object(id)};
必须是:
const details= {'_id' : new ObjectID(id)};