Quiero eliminar todas las cuentas incompletas en mi aplicación donde el usuario se registró, creó una cuenta pero no finalizó el proceso de verificación cargando ciertas imágenes...
Estoy ejecutando un trabajo cron que realiza esta tarea cada 24 horas...
Quiero eliminar todos los objetos donde imageUrlOne & imageUrlTwo == "" Y createdAt tiene más de 24 horas.
Mi código actual no funciona, ¿alguna idea de lo que estoy haciendo mal?
GRACIAS
const User = require("../models/user-model") const removeInactiveAccounts = async () => { let twentyFourHours = miliseconds(24, 0, 0) // hours, min, seconds function miliseconds(hrs, min, sec) { return (hrs * 60 * 60 + min * 60 + sec) * 1000 } let startDate = Date.now() // todays date let endDate = startDate - twentyFourHours // 24 hours ago from today try { await User.deleteMany({ imageUrlOne: "", imageUrlTwo: "", createdAt: { $gte: startDate, $lte: endDate, }, }) } catch (err) { console.log(err.message) } } module.exports = removeInactiveAccountsTienes tus signos un poco confundidos.
Estás diciendo más que "ahora mismo" y menos de hace 24 horas.
Para simplificar, digamos que "ahora mismo" es 86400 . Eso haría "hace 24 horas" 0 .
Entonces, tienes: createdAt >= 86400 && createdAt <= 0 .
Bueno, eso es imposible. Ningún número puede ser mayor que 86.400 y menor que 0 al mismo tiempo.
En este caso, no es necesario que incluya la fecha de inicio. Deshágase de él y simplemente cree At menos que endDate y debería estar bien.