У меня есть 2 схемы, которым нужны данные друг другу во время операции сохранения.Когда модель1 сохранена, идентификатор модели1 понадобится модели2, а по завершении модели1 потребуется идентификатор модели2.
express.js
SCHEMA1.full_name = fullName;
SCHEMA1.other_fields = other_details;
var variableName = 'inside the controller';
schema2 = new schema(req.body);
SCHEMA1.save(function (err, result){
});
SCHEMA1.js
var SCHEMA1 = mongoose.Schema({
full_name: String,
other_fields : String//etc
schema2_foreign_field:{
type: Schema.Type.ObjectId,
ref: 'schema2'
}
})
SCHEMA1.pre('save', function(){
var fullName = this.full_name;
var otherFields = this.other_fields;
var schema2= this.model('schema2')
schema2.name = 'Bryan';
schema2.clocking_time = Date.now();
schema2.save();
var schema2Id = schema2._id;
/********************************************
* how can i get schema2Id above into pre *
* hook after the data has been saved *
********************************************/
//perform operation inside schema and compare
//result with controller variableName
})
SCHEMA1.post('save', function(){
SCHEMA1.schema2_foreign_field=schema2Id;//obtained from above
SCHEMA1.save();
})