diff --git a/lib/helpers/model/discriminator.js b/lib/helpers/model/discriminator.js index d62840b7c7e..cfacd3d3dfc 100644 --- a/lib/helpers/model/discriminator.js +++ b/lib/helpers/model/discriminator.js @@ -1,5 +1,6 @@ 'use strict'; +const Mixed = require('../../schema/mixed'); const defineKey = require('../document/compile').defineKey; const get = require('../get'); const utils = require('../../utils'); @@ -89,11 +90,12 @@ module.exports = function discriminator(model, name, schema, tiedValue, applyPlu if (path.indexOf('.') === -1) { continue; } - const sp = path.split('.'); + const sp = path.split('.').slice(0, -1); let cur = ''; for (const piece of sp) { cur += (cur.length ? '.' : '') + piece; - if (schema.paths[cur] || schema.singleNestedPaths[cur]) { + if (schema.paths[cur] instanceof Mixed || + schema.singleNestedPaths[cur] instanceof Mixed) { conflictingPaths.push(path); } }