2012-10-06 5 views
5

Mongoose.js 3.1.2'de bazı içeriği güncellemeye çalışıyorum ve bu iki işlevi çalışamıyorum. Herhangi bir fikir neden? Teşekkürler ...sorun kaydediliyor

function(req, res) { 
    Content.findById(req.body.content_id, function(err, content) { 
    // add snippet to content.snippets 
    content.snippets[req.body.snippet_name] = req.body.snippet_value; 
     content.save(function(err) { 
     res.json(err || content.snippets); 
    }); 
    } 
} 


function(req, res) { 
    Content.findById(req.body.content_id, function(err, content) { 

     // delete snippets 
     delete content.snippets[req.body.snippet_name]; 
     //content.snippets[req.body.snippet_name] = undefined; <-- doesn't work either 

     content.save(function(err) { 
     res.json(err || "SUCCESS"); 
     }); 

    }); 
} 

Benim şema şöyle görünür:

contentSchema = new Schema(
    title: String, 
    slug: String, 
    body: String, 
    snippets: Object 
); 

cevap

10

Sen değiştirilmiş şekliyle yolları işaretlemek gerekebilir. Mongoose, onlar için katıştırılmış bir şema oluşturmadığınız için nesne özelliklerini kontrol etmeyebilir.

function(req, res) { 
    Content.findById(req.body.content_id, function(err, content) { 
    // add snippet to content.snippets 
    content.snippets[req.body.snippet_name] = req.body.snippet_value; 
    content.markModified('snippets'); // make sure that Mongoose saves the field 
     content.save(function(err) { 
     res.json(err || content.snippets); 
    }); 
    } 
} 
+0

Vay canına, tamamen aklımı kaçırdın, bunun için teşekkürler: D – red

+0

Evet! Onu nasıl özledim? Teşekkürler Bill – Pardoner

+0

Sen benim kahramanımsın. – ehaydenr