次のコードを使用して、ドキュメント「Order.attempt_status」を「open」から「closed」に更新しています
AttemptSchema.pre('save', function (next) {
var attempt = this;
Order.findById(this.order).exec(function(err, order){
if(err) next(err);
if(!order) next(new Error('could not load order with order_id:' + this.order));
console.log(JSON.stringify(order));
order._doc.attempt_status = attempt.attempt_status;
console.log(JSON.stringify(order));
order.save(function(err){
if(err) next(err);
else next();
});
});
});
デバッグすると、attempt_status が変更されますが、更新されたドキュメントはデータベースに保存されません。以下はデバッグ画面です。
画像が表示されている場合は、 http://i.stack.imgur.com/ByCPT.pngをクリックします。コンソールプリントは
{
"_id": "54a26634a4800130eb95be19",
"attempt_status": "open",
....
....
}
{
"_id": "54a26634a4800130eb95be19",
"attempt_status": "closed",
....
....
}