У меня есть две схемы коллекции, и я хочу вставить один экземпляр модели одной схемы (FA) в поле массива другой схемы модели (FP):
var FASchema = new Schema({
Timestamp: Date,
PrognostizierterBetriebswert: Number,
posFlexPot: Number,
negFlexPot: Number,
Leistungsuntergrenze: Number,
Leistungsobergrenze: Number,
posGesEnergie: Number,
negGesEnergie: Number,
Preissignal: Number,
Dummy1: Schema.Types.Mixed,
Dummy2: Schema.Types.Mixed,
Dummy3: Schema.Types.Mixed
//same: Dummy: {}
});
module.exports = mongoose.model("FA", FASchema, 'FA');
и
var FPSchema = new Schema( {
_id: String, //mongoose.Schema.Types.ObjectId,
Demonstrator: Number,
erstellt: {type: Date, 'default': Date.now},
von: Date,
bis: Date,
Fahrplanabschnitte: { type: Schema.Types.ObjectId, ref: 'FA' },
})
module.exports = mongoose.model("FP", FPSchema, 'FP');
Теперь, когда я создаю новый документ FA, я хочу вставить документ FA в свою коллекцию FP внутри массива "Fahrplanabschnitte".Либо по ссылке, либо по схеме / вложенному вложенному документу ... Каков наилучший способ сделать это и как я могу это сделать?
Я вызываю метод POST, который должен выполнять работу с: router.route('/FA/FPPUT/:FP_id').put(FAController.create_and_push_to_FP_by_ID)
Сама функция выглядит следующим образом: на первом этапе экземпляр FA создается и сохраняется в коллекции FA, затем коллекция FP обновляется, и в массив "Fahrplanabschnitte" должен быть добавлен новый экземпляр FA.вставлено.Тем не менее, это не работает, как планировалось ..
exports.create_and_push_to_FP_by_ID=function(req,res) {
console.log(req.body)
var fa = new FA(req.body);
//SAVE the new instance
fa.save(function(err) {
if (err) {
console.log(err);
res.status(400);
res.send(err);
}
else {
console.log("Instanz FA in Datenbank erzeugt!");
res.status(200);
res.json({ message: 'FA-Instance created in datbase!' })
}
});
FP.findOneAndUpdate({_id: req.params.FP_id}, function(err, fp) {
if (err){
res.send(fa);
}
//res.json(fp);
fp.Fahrplanabschnitte.push(fa._id);
})
};
Что я делаю не так?