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.
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 campovalid
que has definido en tu esquema.Intenta cambiar esta parte de tu canalización:
a esto:
Esto comparará el campo
valid
en tu documento con la fecha actual y obtendrá solo las ofertas que todavía son válidas hoy.