diff --git a/lib/model.js b/lib/model.js index 114ec86fec5..a94e3caff64 100644 --- a/lib/model.js +++ b/lib/model.js @@ -1235,6 +1235,7 @@ Model.discriminator = function(name, schema, options) { const value = utils.isPOJO(options) ? options.value : options; const clone = typeof options.clone === 'boolean' ? options.clone : true; const mergePlugins = typeof options.mergePlugins === 'boolean' ? options.mergePlugins : true; + const overwriteModels = typeof options.overwriteModels === 'boolean' ? options.overwriteModels : false; _checkContext(this, 'discriminator'); @@ -1245,8 +1246,8 @@ Model.discriminator = function(name, schema, options) { schema = schema.clone(); } - schema = discriminator(this, name, schema, value, mergePlugins, options.mergeHooks); - if (this.db.models[name] && !schema.options.overwriteModels) { + schema = discriminator(this, name, schema, value, mergePlugins, options.mergeHooks, overwriteModels); + if (this.db.models[name] && !schema.options.overwriteModels && !overwriteModels) { throw new OverwriteModelError(name); }