Estoy usando Prisma con NextJs.
En mi API, envío al back-end una lista de números que corresponden a las identificaciones de los objetos en mi base de datos.
Como ejemplo, si recibo la lista [1, 2, 12] , me gustaría devolver los objetos donde la identificación es 1, 2 o 12
Esto es parte de una consulta que es más compleja (ordenar/contar/...) pero estoy bloqueando en el primer paso para obtener la lista de elementos
Hasta ahora tengo esto:
import { PrismaClient, Prisma } from '@prisma/client' const prisma = new PrismaClient() export default async function handler(req, res) { if (req.method !== 'POST') { res.status(400).send({ message: 'Only POST requests allowed for this route' }) } else { const { signes_id } = req.query const signes_array = signes_id.split(",").map(function(item) { return parseInt(item) }) console.log(signes_array) const ret = await prisma.signe.findMany({ where: { id: Number(signes_array), } }) res.status(200).send(ret) } } Esto no funciona ya que Number espera un int, no una matriz de int
¿Cómo puedo escribir la consulta de forma que devuelva la matriz de objetos necesaria?
¿Y cómo puedo lidiar con las identificaciones que no coinciden?
Puede usar el operador in para consultar por id múltiple dentro findMany .
Ejemplo:
const ret = await prisma.signe.findMany({ where: { id: { in: [1, 2, 12] }, } })Más detalles están disponibles en la referencia del cliente de prisma.