如何使用graphql通过关系从strapi查询数据?

How to query data from strapi by relation using grqphql?

我的 Strapi 中有两个 table,一个是 question,另一个是 question_option。 我在 question_option table 中有 question_id。我想 select 所有问题都可以选择。问题是在 Strapi 中我们必须从 question_option 查询,我们不能从 question 查询。根据每个选项,例如,如果我有30个选项,它会提出30次问题。那么我怎样才能 select 一个带有选项的问题呢?

query{
  questionOptions(filters: { question_id:{for : { contains: "owner" }}}){
  data{
     id
     attributes{
      option,
      score,
      status,
      question_id{
        data{
          id
          attributes{
            title
          }
        }
      }
    }  
  }
}

结果是这样的:

{
"data": {
"questionOptions": {
  "data": [
    {
      "id": "44",
      "attributes": {
        "option": " 0-10",
        "score": "1",
        "status": "1",
        "question_id": {
          "data": {
            "id": "5",
            "attributes": {
              "title": "Client Base"
            }
          }
        }
      }
    },
    {
      "id": "45",
      "attributes": {
        "option": "11-50",
        "score": "1",
        "status": "1",
        "question_id": {
          "data": {
            "id": "5",
            "attributes": {
              "title": "Client Base"
            }
          }
        }
      }
    },
    {
      "id": "46",
      "attributes": {
        "option": "51-100",
        "score": "1",
        "status": "1",
        "question_id": {
          "data": {
            "id": "5",
            "attributes": {
              "title": "Client Base"
            }
          }
        }
      }
    },
    {
      "id": "47",
      "attributes": {
        "option": "101-200",
        "score": "1",
        "status": "1",
        "question_id": {
          "data": {
            "id": "5",
            "attributes": {
              "title": "Client Base"
            }
          }
        }
      }
    },
    {
      "id": "48",
      "attributes": {
        "option": "over 200",
        "score": "1",
        "status": "1",
        "question_id": {
          "data": {
            "id": "5",
            "attributes": {
              "title": "Client Base"
            }
          }
        }
      }
    },
    {
      "id": "49",
      "attributes": {
        "option": "Bohemian    ",
        "score": "1",
        "status": "1",
        "question_id": {
          "data": {
            "id": "6",
            "attributes": {
              "title": "Style Identity"
            }
          }
        }
      }
    },
    {
      "id": "50",
      "attributes": {
        "option": "Casual    ",
        "score": "1",
        "status": "1",
        "question_id": {
          "data": {
            "id": "6",
            "attributes": {
              "title": "Style Identity"
            }
          }
        }
      }
    },
    {
      "id": "51",
      "attributes": {
        "option": "Clean  ",
        "score": "1",
        "status": "1",
        "question_id": {
          "data": {
            "id": "6",
            "attributes": {
              "title": "Style Identity"
            }
          }
        }
      }
    },
    {
      "id": "52",
      "attributes": {
        "option": "Classic  ",
        "score": "1",
        "status": "1",
        "question_id": {
          "data": {
            "id": "6",
            "attributes": {
              "title": "Style Identity"
            }
          }
        }
      }
    },
    {
      "id": "53",
      "attributes": {
        "option": "Colorful    ",
        "score": "1",
        "status": "1",
        "question_id": {
          "data": {
            "id": "6",
            "attributes": {
              "title": "Style Identity"
            }
          }
        }
      }
    }
  ]
}
}
}

如您所见,它为我带来了每个选项的问题。

基本上,您必须在 questionquestion_option 内容类型之间设置一个关系字段。在不知道 question_option 的目的的情况下,我不能确切地说出它应该是什么类型的关系。查看返回值我只能假设它应该是question has many question_options。您必须自己考虑并相应地设置关系字段。设置后,您会在 question 内容类型中看到 question_optionquestion_options 关系,具体取决于您指定的关系类型,您可以使用它们查询 questions选项。