gpt4 book ai didi

javascript - 对于 Prisma Client 连接查询,是否可以将深度嵌套的字段移动到结果的顶层?

转载 作者:行者123 更新时间:2023-12-05 04:33:22 29 4
gpt4 key购买 nike

Prisma 是否能够将嵌套字段从另一个表连接移动到结果的顶层,如扁平化 View ?我想将结果 JSON 放入前端表中,而无需挖掘嵌套对象并构建另一个对象。

例如,我想复制这种行为,我可以从不同的表(用户和学校的列)中挑选列。目前我使用带有类似 SQL 的原始查询,但是我想知道是否可以仅使用 Prisma API:

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",
}

如果我在 Prisma 中这样做,我将需要进入多层嵌套对象才能在另一个表上获得相同的列名,例如用户[user_school][schoo][school_name]。这需要额外的工作来遍历我的所有结果,从嵌套对象中提取,并构建另一个对象。这个例子还不错,但是我有更多的连接和深层嵌套的对象来解决我的实际问题(很多关联/查找表)。我已尝试使用 selectinclude 进行连接,但它们是使用嵌套 JSON 构建的。

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",
}
}
],
}

最佳答案

目前无法将结果拉平。

实现此目的的唯一方法是使用 rawQuery正如你提到的。

但是,有一个现有的 Feature Request其中讨论了通过提供 flatten:true 选项来展平结果。如果您可以在那里提及您的用例并添加评论,这将有助于 Prisma 的产品和工程团队确定它的优先级。

关于javascript - 对于 Prisma Client 连接查询,是否可以将深度嵌套的字段移动到结果的顶层?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71445312/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com