From 945dfa7b510d610fcaf22d6ec4ac1f65608c4686 Mon Sep 17 00:00:00 2001 From: Florian Bischoff Date: Sat, 27 Oct 2018 13:58:01 +0200 Subject: [PATCH] feat: add indexAutomatically option to disable middleware hooks --- lib/index.js | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/lib/index.js b/lib/index.js index fecf6b0..cf8e6ad 100644 --- a/lib/index.js +++ b/lib/index.js @@ -9,6 +9,11 @@ const mongoose = require('mongoose'); module.exports = function(schema, options, version) { // clone main level of options (does not clone deeper) options = utils.highClone(options); + + if (!Object.prototype.hasOwnProperty.call(options, 'indexAutomatically')) { + options.indexAutomatically = true; + } + const cachedMappings = new Map(); let generateType; @@ -73,12 +78,13 @@ module.exports = function(schema, options, version) { schema.methods.esUnset = unsetFields; schema.methods.esRemove = removeDoc; - schema.pre('save', preSave); - schema.post('save', postSave); - schema.post('findOneAndUpdate', postSave); - - schema.post('remove', postRemove); - schema.post('findOneAndRemove', postRemove); + if (options.indexAutomatically) { + schema.pre('save', preSave); + schema.post('save', postSave); + schema.post('findOneAndUpdate', postSave); + schema.post('remove', postRemove); + schema.post('findOneAndRemove', postRemove); + } }; module.exports.v2 = function(schema, options) {