Estoy usando mangosta 6.1.5.
Tengo una colección que contiene varios tipos de documentos relacionados. Aquí está parameter-descriptor-item.model.js
const mongoose = require('mongoose'); const { Schema } = mongoose; /** @summary The schema for a parameter item */ const itemSchema = new Schema({ _id: String, name: Object, }); itemSchema.pre(/^find/, function () { // eslint-disable-next-line no-console console.log('item pre hit'); }); /** @summary The base model for all parameter items */ module.exports = mongoose.model('Parameters', itemSchema); El modelo ParameterDescriptor se hereda de ParameterDescriptorItem . Aquí está parameter-descriptor.model.js
const mongoose = require('mongoose'); const ParameterDescriptorItem = require('./parameter-descriptor-item.model'); const { Schema } = mongoose; /** @summary The schema for additional fields for a project */ const parameterSchema = new Schema({ direction: { type: String, enum: ['in', 'out'], required: true, }, default: { type: Number, required: true, }, min: { type: Number, required: false, }, max: { type: Number, required: false, }, unit: { type: String, required: false, }, }); parameterSchema.pre(/^find/, function () { // eslint-disable-next-line no-console console.log('parameter pre hit'); }); /** @summary The model for a parameter descriptor */ module.exports = ParameterDescriptorItem.discriminator('Parameter', parameterSchema); Y aquí está el código para probar el uso de ganchos pre .
const ParameterDescriptorItem = require('./parameter-descriptor-item.model'); const ParameterDescriptor = require('./parameter-descriptor.model'); await ParameterDescriptorItem.find(); // console shows: 'item pre hit' await ParameterDescriptor.find(); // there is nothing additional in the console. Neither the 'pre' hooks from // ParameterDescriptorItem or ParameterDescriptor is called.Este es un tema importante para mí. ¿Hay alguna manera de abordarlo? ¿Hay alguna manera de agregar ganchos previos y posteriores a los modelos creados con Model.discriminator?