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

84
Vistas
Ganchos de mangosta Middleware

Tengo la siguiente configuración de base de datos:

Modelo de publicación que tiene un campo commentCount correspondiente a la cantidad de comentarios definidos como un número entero.

Modelo de comentario que tiene un campo postId como ObjectId.

Para asegurarme de no hacer un exceso de llamadas a la base de datos, almaceno el número de comentarios en el modelo de publicación.

Actualmente, tengo todo funcionando, pero para mayor claridad y consistencia de datos, estoy tratando de determinar la mejor manera de configurar la siguiente interacción:

Elimino un comentario con el siguiente código:

 const comment = await Comment.findById(postId) const deletedComment = await comment.deleteOne()

En consecuencia, esto desencadena un enlace de pre-guardado de middleware deleteOne de la siguiente manera:

 CommentSchema.pre('deleteOne', { document: true, query: false }, async function() { // Update related post information await Post.findByIdAndUpdate( this.postId, { $inc: { commentCount: -1 }}, { new: true } ) })

que está destinado a mantener el campo commentCount sincronizado con la cantidad de comentarios correspondientes a la publicación.

Sin embargo, tengo curiosidad por saber cómo funcionan los errores en los ganchos de middleware de Mongoose. Por ejemplo, si la actualización del middleware falla en la publicación y arroja un error, ¿eso también cancelará la operación comment.deleteOne() original? Podría manejar esta operación en la ruta API aprovechando las transacciones para garantizar que todo tenga éxito, pero eso parece un poco excesivo para este escenario. Aprovechar el gancho de middleware parece más limpio.

¿Sugerencias?

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