首页 > 解决方案 > 错误:GraphQL 错误:查询条件缺少关键架构元素

问题描述

我使用的是 Amplify,因此使用的是 DynamoDB。我相信我有一个相当简单的架构设置,但是来自 MySQL 我的大脑有点搞砸了!

基本设置(足球联赛)是,

[League]
   [Season]
     [Divisions]
        [Teams]
           [Club]
              [Ground]
[Club]
  [Teams]
     [TeamConnection] (I needed a connection schema as a team can belong to multiple divisions/seasons/leagues. I could not think of another way to connect this on the `Team` model)
        [League]
        [Season]
        [Division]

模式

    ....
    Other Schemas
    ...
type Club @model @key(name: "byClub", fields: ["leagueID", "name"])
    {
      id: ID!
      name: String!
      leagueID: ID!
      leagues: [League] @connection(fields: ["leagueID"])
      teams: [Team] @connection(keyName: "byTeams", fields: ["id"])
      grounds: [Ground] @connection(keyName: "byGround", fields: ["id"])
    }

enum TeamGender {
      Male
      Female
    }
    
type Team @model
      @key(name: "byTeamsClubId", fields: ["clubID"])
      @key(name: "byTeams", fields: ["clubID", "name"])
      {
        id: ID!
        name: String!
        faId: ID!
        clubID: ID!
        club: Club @connection(fields: ["clubID"])
        teamDetails: [TeamConnection] @connection(keyName: "byTeamsConnection", fields: ["id"])
        gender: TeamGender!
      }

type TeamConnection @model @key(name: "byTeamsConnection", fields: ["teamID","seasonID", "leagueID", "divisionID"])
    
    {
      id: ID!
      teamID: ID!
      leagueID: ID!
      seasonID: ID!
      divisionID: ID!
      leagues: [League] @connection(fields: ["leagueID"])
      teams: [Team] @connection(fields: ["teamID"])
      seasons: [Season] @connection(fields: ["seasonID"])
      divisions: [Division] @connection(fields: ["divisionID"])
    }

type Ground @model @key(name: "byGround", fields: ["clubID", "name"])

    {
      id: ID!
      name: String!
      address1: String
      address2: String
      town: String
      postcode: String
      rating: Int
      type: String
      link: String
      clubID: ID!
      clubs: [Club] @connection(fields: ["clubID"])
    }

错误

此查询正常工作

//$leagueID: ''
export const LIST_CLUBS = /* GraphQL */ `
  query ListClubs($leagueID: ID) {
    listClubs(filter: { leagueID: { eq: $leagueID } }) {
      items {
        name
        leagueID
      }
    }
  }
`

这是使用的自动生成的查询。如果我使用下面的查询,那么下面看到的错误就会出现。这确实让我感到困惑。


//filter: { leagueID: { eq: leagueID } },

    export const listClubs = /* GraphQL */ `
      query ListClubs(
        $filter: ModelClubFilterInput
        $limit: Int
        $nextToken: String
      ) {
        listClubs(filter: $filter, limit: $limit, nextToken: $nextToken) {
          items {
            id
            name
            leagueID
            leagues {
              items {
                id
                name
                faId
                logo
                seasons {
                  items {
                    id
                    name
                    faId
                    yearStart
                    yearEnd
                    leagueID
                    createdAt
                    updatedAt
                  }
                  nextToken
                }
                division {
                  items {
                    id
                    name
                    faId
                    divisionSeasonFaId
                    leagueID
                    seasonID
                    ageInput
                    level
                    createdAt
                    updatedAt
                  }
                  nextToken
                }
                createdAt
                updatedAt
              }
              nextToken
            }
            teams {
              items {
                id
                name
                faId
                clubID
                club {
                  id
                  name
                  leagueID
                  leagues {
                    nextToken
                  }
                  teams {
                    nextToken
                  }
                  grounds {
                    nextToken
                  }
                  createdAt
                  updatedAt
                }
                teamDetails {
                  items {
                    id
                    teamID
                    leagueID
                    seasonID
                    divisionID
                    createdAt
                    updatedAt
                  }
                  nextToken
                }
                gender
                createdAt
                updatedAt
              }
              nextToken
            }
            grounds {
              items {
                id
                name
                address1
                address2
                town
                postcode
                rating
                type
                link
                clubID
                clubs {
                  items {
                    id
                    name
                    leagueID
                    createdAt
                    updatedAt
                  }
                  nextToken
                }
                createdAt
                updatedAt
              }
              nextToken
            }
            createdAt
            updatedAt
          }
          nextToken
        }
      }
    `;

//安慰

Error: GraphQL error: Query condition missed key schema element
GraphQL error: Query condition missed key schema element
GraphQL error: Query condition missed key schema element
GraphQL error: Query condition missed key schema element
GraphQL error: Query condition missed key schema element
GraphQL error: Query condition missed key schema element
GraphQL error: Query condition missed key schema element
GraphQL error: Query condition missed key schema element
GraphQL error: Query condition missed key schema element
GraphQL error: Query condition missed key schema element
GraphQL error: Query condition missed key schema element
    at new ApolloError (/var/www/co.uk/node_modules/apollo-client/bundle.umd.js:92:26)

查询工作如上所述。 在此处输入图像描述

从 GraphIQL 返回的错误

在此处输入图像描述 然而令人沮丧的是,我不知道。数据实际上是返回的,加上最后的错误。

在此处输入图像描述

标签: amazon-web-servicesgraphqlamazon-dynamodbaws-amplify

解决方案


推荐阅读