使用mongoDB和node.js更新文档时出错

时间:2015-11-01 13:29:49

标签: javascript node.js mongodb

使用MongoDB和Node.js更新文档时出现以下错误。

错误:

TypeError: db.profile.updateOne is not a function
    at exports.updateProfile (C:\xampp\htdocs\cit_node\route\route.js:101:13)
    at Layer.handle [as handle_request] (C:\xampp\htdocs\cit_node\node_modules\e
xpress\lib\router\layer.js:95:5)
    at next (C:\xampp\htdocs\cit_node\node_modules\express\lib\router\route.js:1
31:13)
    at Route.dispatch (C:\xampp\htdocs\cit_node\node_modules\express\lib\router\
route.js:112:3)
    at Layer.handle [as handle_request] (C:\xampp\htdocs\cit_node\node_modules\e
xpress\lib\router\layer.js:95:5)
    at C:\xampp\htdocs\cit_node\node_modules\express\lib\router\index.js:277:22
    at Function.process_params (C:\xampp\htdocs\cit_node\node_modules\express\li
b\router\index.js:330:12)
    at next (C:\xampp\htdocs\cit_node\node_modules\express\lib\router\index.js:2
71:10)
    at Immediate.<anonymous> (C:\xampp\htdocs\cit_node\node_modules\express-sess
ion\index.js:433:7)
    at Immediate.immediate._onImmediate (timers.js:425:18)

我正在使用mongojs驱动程序连接mongoDB。我正在解释下面的代码。

exports.updateProfile=function(req,res){
    var colg_name=req.body.colg_name;
    var colg_shname=req.body.colg_shname;
    var address=req.body.address;
    var cont_no=req.body.cont_no;
    var email=req.body.email;
    var id=req.body.id;
    db.profile.updateOne({_id:db.ObjectId(id)},{$set:{colgname:colg_name,colgSname:colg_shname,address:address,contno:cont_no,email:email}},function(err,docs){
        if(!err){
            if(docs){
                res.send("Profile has updated suceessfully");
            }
        }
        if(err){
            res.send("Profile could not updated suceessfully");
        }
    });
}

我正在关注this link更新记录。请帮我解决此错误。

1 个答案:

答案 0 :(得分:0)

您需要访问db对象,然后访问配置文件集合的集合对象。一种方法是在名为db.js的文件中建立连接,然后导出其他脚本可以“必需”的db对象,或者另一种方法是使updateProfile函数接受db或collection对象作为函数中的参数。发生错误是因为对象没有您认为具有的属性。