使用express和node.js更新mongodb中的单个记录
Update single record in mongodb using express and node.js
我想通过mongoDB中的集合中的_id更新单个记录。
更新:我将res更改为req(谢谢!)并实现了db。ObjectId(),现在我得到一个500内部服务器错误。
"_id" : ObjectId("54d5296711436278137af74b"),
"username" : "alex",
"email" : "alex@gmail",
"fullname" : "alex man",
"age" : "15",
"location" : "minneap",
"gender" : "mal"
这是我从客户端进行的ajax调用。
$.ajax({
type: 'PUT',
data: updatedUser,
url: '/users/updateuser/' + globalUserID,
dataType: 'JSON'
}).done(function(response){
这是路由代码。
/*
* PUT to updateuser
*/
router.put('/updateuser/:id', function(req, res) {
var db = req.db;
var userToUpdate = req.params.id;
db.collection('userlist').update(
{ _id: userToUpdate},
req.body,
function(err, result){
res.send(
(err === null) ? {msg: ''} : {msg: err}
);
});
});
我收到了200条回复,但我的记录没有更新。我的语法有什么问题?
您需要确保将string
_id转换为ObjectId
。
此外,您使用的是res
.body而不是req
.body.
router.put('/updateuser/:id', function(req, res) {
var db = req.db;
var userToUpdate = req.params.id;
db.collection('userlist').update({ _id: ObjectId(userToUpdate)}, req.body, function (err, result) {
res.send(
(err === null) ? {msg: ''} : {msg: err}
);
});
});
不同的驱动程序使用不同的方法来创建ObjectId:
- mongoDB本机驱动程序:new ObjectId(
idString
) - mongoJS:db。ObjectId(
idString
) - mongoSkin:toObjectID(
idString
) - 猫鼬:猫鼬。Types.ObjectId(
idString
)
它应该是req.body,而不是res.body
db.collection('userlist').update(
{ _id: userToUpdate},
res.body -> should be req.body
相关文章:
- mysql查询一次在单个查询中的多个表中插入记录
- 可以't在Angular js/HTML中获取单个记录
- 使用jquery获取单个记录
- 如何使用挖空保存单个记录
- 使用express和node.js更新mongodb中的单个记录
- 是为大约100条记录中的每一条呈现一个表单更快,还是用ajax加载单个表单更快
- 使用 limit 解析“or”查询将返回忽略单个查询限制的所有记录
- 为单个定期事件保存单个 DHTMLX 计划程序事件记录
- 异步瀑布返回节点 js 和 mongodb 中数组的单个记录
- 使用单个查询将多个记录插入到 webSQL 表中,来自对象数组的数据
- 使用$http.get检索单个记录
- ExtJs JSONStore loaddata方法只加载单个记录
- 使用jquery ajax从xml中检索单个记录
- AngularJS - ng-repeat多次显示单个记录
- 绑定带有单个记录的简单视图模型
- 编辑单个记录
- 选择/取消选择全部对单个记录不起作用
- ExtJS 4-更新/刷新单个记录
- Angular JS:如何从 json 数据集“加载”单个记录
- 需要在ASP.net数据列表的单个记录中识别特定元素的ID