ここに私のスキーマがあります:
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);
さて、データベースにはすでに「投稿」のバージョンがあります。これが私が書こうとしているものです(上記のスキーマのインスタンス):
{
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);
});
コンソールは「更新された投稿」と元の投稿オブジェクトを必ず返します。更新は書き込まれず、エラーもありません。
findByIdAndUpdate
また、両方mongoose.Types.ObjectId( )
を使用して ID をラップしようとしましたnew ObjectId( )
(var ObjectId = require('mongoose').Types.ObjectId
ファイルの前半)。
私は困惑しています。どんな助けでも大歓迎です!