繁体   English   中英

结合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游乐场上使用的查询来对此进行测试

query {
  SpotDetails(id:"cjkbwq1nm00310a958udjcr20"){
    regulations{
      notes
    }
  }
}

所以我最初包含了信息,因为在GraphQL样板的示例代码中使用了该信息。 但是,在查看有关读取数据的prisma文档之后,没有一个示例包含传递信息。 我不确定该信息的用途,但是当我从解析器中的Spots调用中删除该信息时,如下所示,它按预期工作。 我仍然需要弄清楚为什么传递信息,但是我需要完成它。

SpotDetails(parent, args, ctx, info) {
  let { id } = args;
  let details = new Object();
  details['info'] = ctx.db.query.spot({ where: { id } });
  return details;
},

如果没有传递信息对象,我认为嵌套多级字段时它将不起作用。 pyramida仅返回Spot相关字段。

Spot有很多SpotRegulation吗? 如果是这样,法规将成为现场的子领域吗?

如果您不需要传递信息对象,则可以使用generated javascript client ,而不是prisma-binding db

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM