graphcool - Playground 之外的解析器/查询中的 Prisma orderBy

标签 graphcool prisma prisma-graphql

好的,我已经使用 Prisma 工作了几个星期,并取得了一些巨大的进步,我喜欢实现许多高级功能的设置/易用性。

我正在尝试对表字段进行排序。

我可以选择(以及其他字段)按 term_ASCterm_DESC 排序。

假设以下查询定义:MyConnection(filter: String, order: MyOrderByInput, limit: Int, offset: Int): MyConnection!

如果我在 GraphQL Playground 中运行以下代码,它可以正常工作:

query myPaginatedResults {
    myConnection(filter: "lorem", limit: 25, offset: 0, order: term_ASC) {
        aggregate {
            count
        }
        edges {
            node {
                id
                term
            }
        }
    }
}

要点/问题... term_ASC/DESC 的用法在 Playground 中有效,但如何在 JS 中传递它?

如果我将其用引号“term_ASC”括起来,则会发生错误,如果未将其括起来,则它(解析器/api)会抛出有关明显 undefined variable 的错误。

const myConnection = (parent, args, context, info) => {
  const where = args.filter
  ? {
    OR: [
      { term_contains: args.filter },
      { type_contains: args.filter },
      { id_in: args.filter },
    ],
  } : {}

  const order = args.order;
  // const order = `title_ASC`;
  const skip = args.offset ? args.offset : 0;
  const limit = args.limit ? args.limit : 50;

  // console.log(context.db.query);
  const results = context.db.query.myDbConnection({
    where,
    orderBy: order,
    first: limit,
    skip: skip,
  }, info);

  return results;
}

因此,我尝试测试如何通过变量(硬编码,在本示例中注释掉)传递此 orderBy 变量,或者在通过我的 args.order 传递到解析器之前,我无法弄清楚应该如何通过。

最佳答案

好吧,像往常一样,一旦我的问题被写下来/说出,我就想出了答案。

问题不是我无法将 MyOrderByInput 中的枚举值包装在解析器中的引号中或分配给预查询的变量,问题是我试图使用title_ASC/title_DESC 在我的类型中不存在。

对我来说-1。

这里的教训:确保您使用的排序方法确实存在于您的 Prisma 架构中。

关于graphcool - Playground 之外的解析器/查询中的 Prisma orderBy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50774034/

相关文章:

Apollo/Graphcool Subscriptions - WebSocket 在连接建立之前关闭

node.js - 嵌套对象查询到 Prisma 中的单个数组

postgresql - Prisma 1 到 2 迁移问题 : P4001 The introspected database was empty

javascript - 棱镜2 : how to fetch nested fields?

javascript - 订阅不适用于 Prisma 2 和 Nexus?

GraphCool 域模型设计 - ModifiedBy 属性带来麻烦

graphql - Relay Modern 节点不包含片段属性

facebook-graph-api - 如何: Increment the value of an integer based field in GraphQL

node.js - GraphQL/Prisma 订阅仅针对 DELETE 触发

postgresql - 使用 Prisma 的嵌套创建查询返回未定义