使用数组作为GraphQL查询的变量

时间:2019-03-07 13:36:50

标签: javascript graphql apollo-client prisma prisma-graphql

我想在嵌套字段中查询多个变量。 在这种情况下,我想查询RPR,但是如果给定了嵌套Region的标签,则仅返回RPR。嵌套区域(字段:标签)的一个变量工作正常,但是如何过滤同一字段的多个变量

我的看法是,当我调用查询客户端(以我的情况通过Apollo进行调用)时,我想给一个数组作为变量,并让后端的查询通过该数组并根据返回结果数组中给出的任何变量。

解析器不执行任何操作,

rPRs: (root, args, ctx, info) => {
 return ctx.db.query.rPRs(args, info);
}

模式的相关部分:

    type RPR {
      id: ID! @Unique
      RPRID: String! @Unique
      state: String
      region: Region!
      resource: Resource!
      price: Float
      theme: String
      editionTitle: String
      information: String
    }

    type Region {
      id: ID! @Unique
      regionID: String! @Unique
      label: String! @Unique
      name: String! @Unique
      aov: Float!
      aov_multiplier: Float!
    }

当前查询以检索具有嵌套区域的所有“ RPR”:


    query ADVICE_RESOURCES_QUERY($theme: String, $regio: String) {
      rPRs(where: {
        theme: $theme,
        region: {
          label: $regio
        }
      })
      {
        RPRID
        region {
          label
        }
      }
    }

1 个答案:

答案 0 :(得分:0)

您应该能够使用label_in过滤器并为其提供字符串数组。您的位置将如下所示:

where: {
    theme: $theme,
    region: {
      label_in: $regio
    }
  }