更新MongoDB中的项
Update item in MongoDB
为了使自己成为一个更好的开发人员和稳定我的血压,我正在学习Node.js。那里有很多很棒的教程,非常感谢社区。我对我的get, post和delete相当好,但我有一个问题,做一个PUT请求,特别是与Mongo如何处理更新数据。我是noSQL的新手,这让我很困惑。这是我的控制器代码:
router.put('/updateuser/:id', function(req, res){
var db = req.db
db.collection('userlist').updateById(req.params.id.toString(), {"username": req.body.username})
console.log(req.params.id.toString())
})
我在第3行要做的是通过url获取适当的项目id,然后用http主体的数据更新用户名。我已经取得了一些成功,但我不明白更新方法是如何找到它们要更新的内容的,每次我运行代码时,我都会得到一个500。
我请求蒙哥诸神来照亮我的无知,并告诉我应该如何运行更新命令。
我不确定你使用的是哪个db驱动程序,但它看起来像通过_id更新。要匹配_id,需要将id字符串转换为ObjectID。注意,您可能需要使用$set来执行更新({$set: {"username": req.body.username}})。下面是代码:
var ObjectID = require('mongodb').ObjectID;
router.put('/updateuser/:id', function(req, res){
var db = req.db
db.collection('userlist').update({_id: ObjectID.createFromHexString(req.params.id)},
{$set: {"username": req.body.username}}, function(err, updated) {
if (updated) {
console.log('updated');
}
console.log(req.params.id); // don't need to do toString(), it's string
})
});
更新:你正在使用udpateById()我认为它需要objectid . createfromexstring (req.params.id)而不是{_id: objectid . createfromexstring (req.params.id)}像update()一样。但我相信如果你在update()
相关文章:
- 使用mongodb更新中的一个变量
- 用户名未使用MongoDB更新功能正确更改
- Expressjs&集合中的MongoDB更新对象's数组
- mongodb更新JSON数组
- 异步mongodb更新循环中最后一次迭代后的重定向
- 使用mongodb更新多个文档
- MongoDB 更新嵌套数组
- 子数组内的Mongodb更新操作
- 正确使用Javascript中的MongoDB更新功能
- Node.JS:MongoDB更新回调返回结果,返回函数代码
- MongoDB更新一个平均值
- MongoDB -更新$ref value无法查询新值
- MongoDB:更新嵌套数据,但避免多个对象
- MongoDB:更新计数错误
- MongoDB:更新嵌套数组元素,如果不存在则插入它
- Mongoose/MongoDB -更新子文档不工作
- MongoDB更新对象与项目删除不保存
- React.js添加新行后从mongodb更新表
- MongoDB:更新所有文档中的字符串字段
- MongoDB:更新集合中所有文档的嵌套数组字段