Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

203
Vistas
mongoose .find ignora los valores devueltos por los getters, a pesar de toObject y toJSON getters = true en el esquema

Quiero encontrar todos los documentos cuyos captadores devuelvan un valor particular. Específicamente, en mi esquema de posición, tengo una propiedad llamada cantidad descubierta y quiero encontrar todos los documentos de posición con cantidad descubierta = 10.

Cuando hago const positions = await Position.find({uncoveredQuantity : 10}); devuelve todos los documentos con varios valores diferentes de cantidad descubierta, ¡no los que son 10! Lo interesante es que mi función getter, computeUncoveredQuantity, se llama cuando se llama a Position.find() , e imprime la instrucción console.log.

 function calculateUncoveredQuantity(this: PositionBaseDocument) { console.log("getter called"); let quantityLeft = this.quantity; const dest = this.direction === "in" ? this.closedBy : this.isCloseFor; if (!dest) return quantityLeft; for (const pos of dest) { quantityLeft -= pos.amount; } return quantityLeft; } const PositionCloseSchema = { position: { type: mongoose.Schema.Types.ObjectId, ref: "Position", }, amount: { type: Number, min: 0, }, }; const positionSchema = new mongoose.Schema( { direction: { type: String, enum: CONSTANTS.directions, required: true, }, quantity: { type: Number, required: true, min: 0, }, uncoveredQuantity: { type: Number, set: calculateUncoveredQuantity, default: calculateUncoveredQuantity, get: calculateUncoveredQuantity, }, closedBy: { type: [PositionCloseSchema], required: function (this: PositionBaseDocument) { return this.direction === "in"; }, }, isCloseFor: { type: [PositionCloseSchema], required: function (this: PositionBaseDocument) { return this.direction === "out"; }, }, }, { timestamps: true, toJSON: { getters: true, }, toObject: { getters: true }, } ); export const Position = mongoose.model("Position", positionSchema);
about 4 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda