2013-09-01 16 views
14

Bir Mongoose belgesini iade ediyorum ve gönderilmeden önce bir meta veri eklemek istiyorum. Ancak, herhangi bir özellik ekleyemiyorum ve neden emin değilim. Object.isExtensible (doc) ile genişletilebilir olduğunu kontrol ettim ve öyle.js nesnesine özellikler eklenemiyor

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 
}) 

Sorun ne olabilir?

cevap

24

Ah .. Nesnem, özellik eklemeye izin vermeyen bir Mongoose belgesidir. Çözüm, döndürülen belgeyi sade bir nesneye dönüştürmek veya sorguda yalın() çağırmaktır.

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

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

dönüştürülen sade nesne şema yöntemlerine sahip midir? – irakli2692