2012-10-06 14 views
5

Estoy intentando actualizar algunos contenidos en Mongoose.js 3.1.2 y no puedo hacer que estas dos funciones funcionen. ¿Alguna idea de por qué? Gracias ...problemas para guardar en 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"); 
     }); 

    }); 
} 

Mi esquema es como la siguiente:

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

Respuesta

10

Es posible que necesite para marcar los caminos modificado. Es posible que Mongoose no compruebe las propiedades del objeto, ya que no creó un esquema incrustado para ellas.

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, me voló por completo, gracias por esto: D – red

+0

¡Sí! Como lo extrañé Gracias Bill – Pardoner

+0

Eres mi héroe. – ehaydenr

Cuestiones relacionadas