Esto es lo que estoy haciendo ahora mismo:
const addHours = function (date: Date, hours: number) { date.setTime(date.getTime() + (hours * 60 * 60 * 1000)) return date; } let expiredReservation = await prisma.collectionIndexes.findMany({ where: { AND: [ { collectionId: dbCollection.id }, { submitedTx: null } ] }, orderBy: { reservedAt: 'asc' } }) expiredReservation = expiredReservation.filter(r => addHours(r.reservedAt, 1).getTime() < new Date().getTime())Estos son mis modelos:
model CollectionIndexes { id Int @id @unique @default(autoincrement()) submitedTx String? collection Collection @relation(fields: [collectionId], references: [id]) collectionId Int reservedIndex Int reservedAt DateTime @default(now()) } model Collection { id Int @id @unique @default(autoincrement()) collectionName String @unique collectionLimit Int? CollectionIndexes CollectionIndexes[] }Preferiría simplemente obtener los registros correctos de prisma db, sin filtrar después. Si es posible, ¿cómo escribirlo?
¿Podrías intentar algo como a continuación?
const subtractHour = (date, hour) => { date.setHours(date.getHours() - hour); return date; } let expiredReservation = await prisma.collectionIndexes.findMany({ where: { AND: [ { collectionId: dbCollection.id }, { submitedTx: null }, { reservedAt: { lte: subtractHour(new Date(), 1) } } ] }, orderBy: { reservedAt: 'asc' } })