这是我的架构:
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”和原始帖子对象。永远不会写更新,也不会有任何错误。
我还尝试使用文件前面的findByIdAndUpdate
和mongoose.Types.ObjectId( )
(new ObjectId( )
)在var ObjectId = require('mongoose').Types.ObjectId
中包装ID。
我很难过。任何帮助将不胜感激!
答案 0 :(得分:2)
由于articleObj
是Post
的实例,因此您无法在update
调用中使用它,因为该参数必须是纯JavaScript对象。