En mi base de datos mongodb tengo una colección llamada Bookings en el modelo hay un campo llamado periodFrom (que representa una fecha en una cadena) que es de tipo String.
Necesito encontrar los documentos de esta colección que tienen un período de mayor que la fecha de hoy. Intenté usar virtuales pero no funcionó.
Aquí hay un ejemplo de algunos documentos en mi colección de Bookings:
{"name": "A", "periodFrom": "29.04.2022 10:00", "place": "Tokyo"}, {"name": "B", "periodFrom": "30.06.2022 10:00", "place": "Paris"} {"name": "C", "periodFrom": "28.04.2022 10:00", "place": "Berlin"}, {"name": "D", "periodFrom": "01.07.2022 10:00", "place": "London"}Mi esquema de reserva:
const bookingSchema = new Schema({ name: {type: String}, periodFrom: {type: String}, place: {type: String} })Probé virtuales agregando al final de mi modelo booking.js
bookingSchema.virtual('periodFromDate').get(function () { return new Date(this.periodFrom.split(' ')[0].split('.')[2].toString() + "-" + this.periodFrom.split(' ')[0].split('.')[1].toString() + "-" + this.periodFrom.split(' ')[0].split('.')[0].toString()) const Booking = mongoose.model("Booking", bookingSchema); });Intenté la solicitud haciendo lo siguiente:
let allCrew = await Booking.find({ periodFromDate: { $gte: Date.now() } })También probé de esta manera pero tampoco funcionaba:
let allCrew = await Booking.find({ periodFrom: { $gte: '2022.07.01 00:00' } })Entonces, ¿alguna idea de cómo podría encontrar los documentos que tienen un periodFrom mayor que la fecha de hoy si periodFrom es una cadena de una fecha en mangosta?