【问题标题】:Why does Mongoose model throw "TypeError: Object { _id: x } has no method 'y'"?为什么 Mongoose 模型会抛出“TypeError: Object { _id: x } has no method 'y'”?
【发布时间】:2012-07-15 02:40:57
【问题描述】:

嘿,我是 mongo 和 mongoose 的新手。我尝试通过 _id 更新特定文档,但我不断收到错误

TypeError: Object { _id: 4fd02c1d50071a5713000001 } has no method 'update'. 

我的代码如下:

//Update comment or increment vote up or vote down
app.put('/comments/voteUp/:commentid', function(request, response){

var id = mongoose.Types.ObjectId(request.params.commentid);

var conditions = { "_id": request.params.commentid }
  , update =  {$inc: { 'meta.voteUp': 1 } }
  , options = { multi: false };

console.log(conditions);
var comment = new CommentModel();
comment.update( { "_id": id, update, options, callback );

function callback (err, numAffected) {
    response.send("numAffected: " + numAffected);
}
console.log("commentid: " + request.params.commentid);
  });

任何帮助将不胜感激

【问题讨论】:

    标签: node.js mongodb mongoose


    【解决方案1】:

    update 是模型构造函数的方法,而不是模型实例的方法。所以改为:

    CommentModel.update({"_id": id}, update, options, callback);
    

    【讨论】:

      猜你喜欢
      • 2015-04-26
      • 1970-01-01
      • 2016-02-08
      • 2012-07-22
      • 2014-02-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多