Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

300
Vistas
Para las consultas de unión de Prisma Client, ¿es posible mover campos profundamente anidados al nivel superior de resultados?

¿Prisma tiene la capacidad de mover campos anidados desde otra combinación de tablas al nivel superior del resultado, como una vista aplanada? Quiero poner el resultado JSON en una tabla de interfaz sin tener que buscar en los objetos anidados y construir otro objeto.

Por ejemplo, quiero replicar este comportamiento donde puedo seleccionar y elegir las columnas de diferentes tablas (columnas de Usuario y Escuela). Actualmente uso una consulta sin procesar con un SQL similar, sin embargo, me pregunto si es posible usando solo la API de Prisma:

 SELECT u.id , u.email , s.school_name FROM "User" AS u JOIN "UserSchool" AS us ON us.user_id = u.id JOIN "School" AS s ON s.id = us.school_id
 id | email | school_name 123| student1@email.com | mount high I want JSON that looks like this: { "id": "1", "email": "student1@email.com", "school_name": "mount high", }

Si hiciera esto en Prisma, necesitaría ir a varios niveles de objetos anidados para obtener el mismo nombre de columna en otra tabla, por ejemplo user[user_school][schoo][school_name] . Esto requiere trabajo adicional para recorrer todos mis resultados, extraer del objeto anidado y construir otro objeto. Este ejemplo no es tan malo, pero tengo más uniones y objetos profundamente anidados para mi problema real (muchas tablas de asociación/búsqueda). Experimenté con select e include para mis uniones, pero están estructuradas con el JSON anidado.

 users = await prisma.user.findMany({ include: { user_school: { include: { school: true, }, }, },
 { "id": "1", "email": "student1@email.com", "user_school": [ { "id": 1, "user_id": "1", "school_id": "1", "school": { "id": 1, "school_name": "mountain high", } } ], }
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

No es posible aplanar los resultados a partir de ahora.

La única forma de lograr esto sería usando rawQuery como mencionaste.

Sin embargo, existe una solicitud de función que analiza el aplanamiento de los resultados al proporcionar una opción de flatten:true . Si pudiera mencionar su caso de uso allí y agregar un comentario, ayudaría al equipo de productos e ingeniería de Prisma a priorizarlo.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda