Skip to content

Commit

Permalink
fix(discriminator): use discriminator model when using `new BaseModel…
Browse files Browse the repository at this point in the history
…()` with discriminator key

Fix #7586
  • Loading branch information
vkarpov15 committed Mar 22, 2019
1 parent 494945e commit 84b82d5
Showing 1 changed file with 11 additions and 0 deletions.
11 changes: 11 additions & 0 deletions lib/model.js
Original file line number Diff line number Diff line change
Expand Up @@ -4586,6 +4586,17 @@ Model.compile = function compile(name, schema, collectionName, connection, base)
if (!(this instanceof model)) {
return new model(doc, fields, skipId);
}
const discriminatorKey = model.schema.options.discriminatorKey;

// If discriminator key is set, use the discriminator instead (gh-7586)
if (model.discriminators != null &&
doc != null &&
doc[discriminatorKey] != null &&
model.discriminators[doc[discriminatorKey]] != null) {
return new model.discriminators[doc[discriminatorKey]](doc, fields, skipId);
}

// Otherwise, just use the top-level model
Model.call(this, doc, fields, skipId);
};
}
Expand Down

0 comments on commit 84b82d5

Please sign in to comment.