Desative os ganchos pais no Mongoose ao salvar subdocumentos

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 🙂