es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Coincidir fechas en mongodb utilizando agregación, esquema de modelo mongoose

Estoy intentando obtener algunos datos de mi base de datos que coinciden con la fecha de hoy.

Este es mi modelo de datos.

new Schema({
    description: { type: String },
    valid: { type: Date },
    discount: { type: Number },
})

Estoy intentando lo siguiente…

   {
        $lookup: {
            from: "offers",
            let: { "idOffer": "$offer" },
            as: "offers",
            pipeline: [
                {
                    $match: {
                        $expr: {
                            $and: [
                                { $eq: ['$_id', '$$idOffer'] },
                                { $gte: [new Date('$valid'), new Date()] }
                            ]
                        }
                    }
                },
            ]
        }
    },

Lo que pretendo es obtener las ofertas que aún son válidas hoy, pero no está funcionando… ¿qué estoy haciendo mal?
Gracias de antemano.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Parece que estás intentando usar el parámetro $valid en la etapa $match de tu canalización, pero no lo has definido en ningún lugar de tu modelo de datos. En su lugar, debes utilizar el campo valid que has definido en tu esquema.

    Intenta cambiar esta parte de tu canalización:

    { $gte: [new Date('$valid'), new Date()] }
    

    a esto:

    { $gte: ['$valid', new Date()] }
    

    Esto comparará el campo valid en tu documento con la fecha actual y obtendrá solo las ofertas que todavía son válidas hoy.

Comments are closed.