2013-09-01 11 views
14

私はMongooseドキュメントを返しています。それを送信する前に、いくつかのメタデータを追加します。私はしかし、任意のプロパティを追加することはできません、なぜ私は確信していません。私はそれがObject.isExtensible(doc)で拡張可能であることを確認しました。jsオブジェクトにプロパティを追加できません

Item.findById(req.params.id).exec(function(err, doc) { 
    doc.blah = 'hello'; 
    console.log(doc); // No trace of 'blah'. I can change/delete existing props however 
}) 

何が問題になりますか?

答えて

24

Ah ..私のオブジェクトは、プロパティの追加を許可しないMongooseドキュメントです。解決方法は、返されたドキュメントを単純なオブジェクトに変換するか、クエリのlean()を呼び出すことです。

Item.findById(req.params.id).exec(function(err, doc) { 
    var obj = doc.toObject(); 
    ... 
}); 

Item.findById(req.params.id).lean().exec(function(err, doc) {  
    ... 
}); 
+0

変換されたプレーンオブジェクトにスキーマメソッドがありますか? – irakli2692

関連する問題