将 Prisma 查询与非 Prisma 数据相结合
Combine Prisma Query with Non-Prisma Data
好的,所以我有以下类型,"Spot" 类型来自 prisma。
type Query {
SpotDetails(id: ID!, lat: String, long: String, regLocation: String): SpotDetails!
Spots: [Spot!]!
}
type SpotDetails {
info: Spot!
regulations: [SpotRegulation]
}
type SpotRegulation {
regulationNumber: String
generalRegText: String
waters: String
seasons: String
bags: String
notes: String
}
如何创建解析器,我可以在其中通过 id
查询 Prisma 的位置,然后将其与 SpotRegulation
类型的其他字段组合?基本上我希望能够查询 SpotDetails
.
现在对于解析器,我有以下内容,但我认为它不起作用,因为提供给 Prisma 查询的信息是 SpotDetails
信息,而不是 Spot
信息期待中
SpotDetails(parent, args, ctx, info) {
let { id } = args;
let details = new Object();
details['info'] = ctx.db.query.spot({ where: { id } }, info);
},
这是我在 graphQL playground 上用来测试这个的查询
query {
SpotDetails(id:"cjkbwq1nm00310a958udjcr20"){
regulations{
notes
}
}
}
所以我最初包含信息是因为它用于 GraphQL 样板的示例代码中。但是,在查看有关读取数据的棱镜文档后,示例中的 none 包括传递信息。我不确定这些信息的用途,但是当我将其从解析器中的 spots 调用中删除时,如下所示,它按预期工作。我仍然需要弄清楚为什么要传递信息,但对于我需要完成的工作来说,它是必需的。
SpotDetails(parent, args, ctx, info) {
let { id } = args;
let details = new Object();
details['info'] = ctx.db.query.spot({ where: { id } });
return details;
},
如果不传递信息对象,我认为它在嵌套多级字段时不起作用。 prisma 仅 return 与 Spot 相关的字段。
Spot有很多SpotRegulation吗?如果是这样,规定是现货的子领域?
如果不需要传递信息对象,可以使用generated javascript client
,而不是prisma-binding
db
好的,所以我有以下类型,"Spot" 类型来自 prisma。
type Query {
SpotDetails(id: ID!, lat: String, long: String, regLocation: String): SpotDetails!
Spots: [Spot!]!
}
type SpotDetails {
info: Spot!
regulations: [SpotRegulation]
}
type SpotRegulation {
regulationNumber: String
generalRegText: String
waters: String
seasons: String
bags: String
notes: String
}
如何创建解析器,我可以在其中通过 id
查询 Prisma 的位置,然后将其与 SpotRegulation
类型的其他字段组合?基本上我希望能够查询 SpotDetails
.
现在对于解析器,我有以下内容,但我认为它不起作用,因为提供给 Prisma 查询的信息是 SpotDetails
信息,而不是 Spot
信息期待中
SpotDetails(parent, args, ctx, info) {
let { id } = args;
let details = new Object();
details['info'] = ctx.db.query.spot({ where: { id } }, info);
},
这是我在 graphQL playground 上用来测试这个的查询
query {
SpotDetails(id:"cjkbwq1nm00310a958udjcr20"){
regulations{
notes
}
}
}
所以我最初包含信息是因为它用于 GraphQL 样板的示例代码中。但是,在查看有关读取数据的棱镜文档后,示例中的 none 包括传递信息。我不确定这些信息的用途,但是当我将其从解析器中的 spots 调用中删除时,如下所示,它按预期工作。我仍然需要弄清楚为什么要传递信息,但对于我需要完成的工作来说,它是必需的。
SpotDetails(parent, args, ctx, info) {
let { id } = args;
let details = new Object();
details['info'] = ctx.db.query.spot({ where: { id } });
return details;
},
如果不传递信息对象,我认为它在嵌套多级字段时不起作用。 prisma 仅 return 与 Spot 相关的字段。
Spot有很多SpotRegulation吗?如果是这样,规定是现货的子领域?
如果不需要传递信息对象,可以使用generated javascript client
,而不是prisma-binding
db