2012-10-06 12 views
5

Ich versuche, einige Inhalte in Mongoose.js 3.1.2 zu aktualisieren, und ich kann diese beiden Funktionen nicht funktionieren. Irgendwelche Ideen warum? Dank ...Problem beim Speichern in Mongoose 3

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

    }); 
} 

Mein Schema sieht wie folgt aus:

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

Antwort

10

Unter Umständen müssen Sie die Pfade markieren, wie geändert. Mongoose überprüft möglicherweise die Objekteigenschaften nicht, da Sie kein eingebettetes Schema für sie erstellt haben.

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

Oh wow, Sie haben mich total umgehauen, danke dafür: D – red

+0

Ja! Wie habe ich es vermisst? Danke Bill – Pardoner

+0

Du bist mein Held. – ehaydenr

Verwandte Themen