2016-08-05 10 views
0

Ich muss meine sekundären Details speichern. Das ist mein Nodejs-Modell.Aktualisierung Filialdokument Mungo und Nodejs

var mongoose = require('mongoose'); 
module.exports = mongoose.model('Todo', { title : String, 
    image:String, 
    bgimage:String, 
    secondary:[Secondary] 
}); 
var Secondary = new mongoose.Schema({ 
    title : String, 
    image:String, 
    bgimage:String, 
    tertiary :[Tertiary] 
}); 

Mein Code in NodeJS Controller speichern

Todo.findById(fields.primaryid, function (err, secondary) { 
    if (!err) { 
    Todo.secondary.push({ title : fields.title, 
     image : fields.file, 
     bgimage : fields.bgfile, 
    }); 
    Todo.save(); 
    } 
}); 

Aber in meiner Konsole folgende Fehler auftreten:

TypeError: Cannot call method 'push' of undefined

Wie dies zu beheben. Ich habe bereits viele Anfragen im Zusammenhang dieser .Aber nichts helfen mir

Antwort

1

fand ich den Fehler im Code, ersetzen Sie es mit mir und hoffen, dass es in Ordnung

Todo.findById(fields.primaryid, function (err, secondary_todo) { 
if (!err) { 
secondary_todo.secondary.push({ title : fields.title, 
     image : fields.file, 
     bgimage : fields.bgfile, 
     }); 
secondary_todo.save(); 
}}); 
+0

dank gesehen kaushik funktioniert. es funktioniert, aber das neu gespeicherte objekt hat nicht automatisch generiert. Dafür muss ich etwas tun. – venkat

+0

Ich habe eine ähnliche Funktionalität verwendet, und ich bin in der Lage, ObjectID zu bekommen, obwohl ich nicht die eine automatisch generierte aber die Anpassung von '1' verwendet. –

+0

Nein, ich habe ursprünglich objectid_id hinzugefügt: mongoose.Types.ObjectId(); in meiner sekundären. – venkat