Se você tiver quaisquer ganchos em seu esquema pai (pré-salvamento, por exemplo), provavelmente eles serão acionados toda vez que você pretende salvar os subdocumentos, o que não é preferível, especialmente se você tiver um conjunto de validação de dados de uma vez.
Para contornar esse problema, você pode adicionar um sinalizador de gancho em seu esquema pai. Por exemplo:
var parentSchema = new Schema({
...
hookEnabled: {
type: Boolean,
default: true
}
});
No próprio gancho, você pode tê-lo assim:
parentSchema.pre('save', function(next, done){
var self = this;
if(self.hookEnabled){
//If the hook is enabled, do your validation here
} else {
//If the hook is disabled, skip
next();
}});
Então, sempre que você salvar os subdocumentos, você pode desativar o gancho:
var parent = mongoose.model('Parent');
...
parent.hookEnabled = false;
parent.save(function(err, doc){
...
});
Boa codificação 🙂