如何使用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"
}
}
}
}
}
]
}
}
}
如您所见,它为我带来了每个选项的问题。
基本上,您必须在 question
和 question_option
内容类型之间设置一个关系字段。在不知道 question_option
的目的的情况下,我不能确切地说出它应该是什么类型的关系。查看返回值我只能假设它应该是question has many question_options
。您必须自己考虑并相应地设置关系字段。设置后,您会在 question
内容类型中看到 question_option
或 question_options
关系,具体取决于您指定的关系类型,您可以使用它们查询 questions
选项。
我的 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"
}
}
}
}
}
]
}
}
}
如您所见,它为我带来了每个选项的问题。
基本上,您必须在 question
和 question_option
内容类型之间设置一个关系字段。在不知道 question_option
的目的的情况下,我不能确切地说出它应该是什么类型的关系。查看返回值我只能假设它应该是question has many question_options
。您必须自己考虑并相应地设置关系字段。设置后,您会在 question
内容类型中看到 question_option
或 question_options
关系,具体取决于您指定的关系类型,您可以使用它们查询 questions
选项。