查询具有3种不同组合的Appsync graphql

问题描述

我正在将appsync与amplify一起使用,并试图弄清楚如何基于两个不同的选择器进行查询。基本上,如果没有提供county or facility,则需要全部查询;如果county为空时,用facility查询,或者facility为空时,用county查询。我以为可以将其包装成1个查询,但似乎不行。我的appsync模式如下所示。

type Client 
  @model
  @key(name: "clientByCountyOrFacility",fields: ["county","facility"],queryField: "getClientsByCountyOrFacility") 
  @searchable {
  id: ID!
  facility: String!
  county: String!
  products: [Product] @connection(name: "ClientProducts")
}

type Product 
  @model 
  @searchable {
  id: ID!
  client: Client @connection(name: "ClientProducts")
}

我可以使用(在查询下面)使它起作用,但是我担心这会遇到100扫描限制,因为它使用下面的listClients查询。也许有一种简单的更改方法可以解决,但看来放大文件自动生成的。

query getClientsByCountyOrFacility($county: String = "",$facility: String = "") {
    listClients(filter: {
    county: {
      contains: $county
    }
    facility: {
      contains: $facility
    }
  }) {
    items {
      id
      products {
        items {
          id
        }
      }
    }
  }
}

添加@key来查看是否可以创建索引,但是它不是那样的,我对如何获取数据一无所知。我该如何构建此架构和查询以取回数据?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)