Ich habe ein Mungo-Schema mit einem Filialdokument. Sowohl das übergeordnete Schema als auch das untergeordnete Schema verfügen über Vorsicherungs-Hooks. Zum Beispiel:Mungo pre speichern Middleware von Filialdokument nicht bei zweiter Speicheroperation
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var SubSchema = new Schema({ x : Number });
SubSchema.pre('save', function (next) {
console.log("pre save Sub");
next();
});
var MainSchema = new Schema({ x : Number, children : [SubSchema] });
MainSchema.pre('save', function (next) {
console.log("pre save Main");
next();
});
var Main = mongoose.model('Main', MainSchema);
var m = new Main();
m.children.push({ x : 42 });
m.save(function(err, doc) {
console.log(doc +"\n\n");
doc.children[0].x = 43;
doc.save(function(err, doc2) {
console.log(doc2 + "\n\n");
});
});
Wenn ich diesen Code ausführen, bekomme ich die folgende Ausgabe:
pre save Sub
pre save Main
{ __v: 0,
_id: 50660b319aec895a50000002,
children: [ { x: 42, _id: 50660b319aec895a50000003 } ] }
pre save Main
{ __v: 0,
_id: 50660b319aec895a50000002,
children: [ { x: 43, _id: 50660b319aec895a50000003 } ] }
Gibt es Gründe, warum die vorge speichern Haken nicht für das Filialdokument speichern läuft auf der zweiten Operation?
Dank! Das funktionierte in 3.2.0 – bryanpackman
Ein upvote würde auch geschätzt werden;) – staackuser2
Ich habe jetzt nur 13 rep Punkte. Sobald ich zwei weitere bekomme, werde ich deine Antwort abstimmen. – bryanpackman