decorateDiscriminatorIndexOptions.js 668 B

1234567891011121314
  1. 'use strict';
  2. module.exports = function decorateDiscriminatorIndexOptions(schema, indexOptions) {
  3. // If the model is a discriminator and has an index, add a
  4. // partialFilterExpression by default so the index will only apply
  5. // to that discriminator.
  6. const discriminatorName = schema.discriminatorMapping && schema.discriminatorMapping.value;
  7. if (discriminatorName && !('sparse' in indexOptions)) {
  8. const discriminatorKey = schema.options.discriminatorKey;
  9. indexOptions.partialFilterExpression = indexOptions.partialFilterExpression || {};
  10. indexOptions.partialFilterExpression[discriminatorKey] = discriminatorName;
  11. }
  12. return indexOptions;
  13. };