Mongoose findByIdAndUpdate失败,没有错误

时间:2012-12-07 16:01:40

标签: javascript mongodb mongoose

这是我的架构:

var postSchema = new mongoose.Schema({
    _id: mongoose.Schema.ObjectId,
    title: String,
    body: String,
    created_at: String,
    modified_at: String
});

var Post = db.model('Post', postSchema);

现在,我已经在数据库中有一个'post'的版本。这是我正在尝试编写的内容(上面的模式实例):

{
  title: 'Sample Post',
  body: 'this s a sample post.',
  _id: 50c208567d32d75f15000001,
  modified_at: 'Fri Dec 07 2012 10:53:42 GMT-0500 (EST)'
}

ID与数据库中的ID对齐。这是功能:

Post.findByIdAndUpdate( post._id, articleObj, function(err, saved) {
  if( err || !saved ) {
    console.log("Post not updated: "+err);
  } else {
    console.log("Post updated: %s", saved);
  }

  callback(err, saved);
});

控制台会返回“post updated”和原始帖子对象。永远不会写更新,也不会有任何错误。

我还尝试使用文件前面的findByIdAndUpdatemongoose.Types.ObjectId( )new ObjectId( ))在var ObjectId = require('mongoose').Types.ObjectId中包装ID。

我很难过。任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:2)

由于articleObjPost的实例,因此您无法在update调用中使用它,因为该参数必须是纯JavaScript对象。