Как запросить данные из страпи по отношению с помощью grqphql?

У меня в Strapi две таблицы: одна question, а другая question_option. У меня есть question_id в question_option таблице. Я хочу выбрать все вопросы с их опцией. Проблема в том, что в Strapi мы должны запрашивать из question_option, мы не можем сделать это из question. По каждому варианту, например, если у меня 30 вариантов, то 30 раз возникает вопрос. Итак, как я могу выбрать вопрос, который предлагает свои варианты?

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"
            }
          }
        }
      }
    }
  ]
}
}
}

Как видите, это принесло мне вопрос для каждого варианта.

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Что такое Apollo Client и зачем он нужен?
Что такое Apollo Client и зачем он нужен?
Apollo Client - это полнофункциональный клиент GraphQL для JavaScript-приложений, который упрощает получение, управление и обновление данных в...
0
0
38
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

По сути, вам нужно установить поле отношения между типами контента question и question_option. Не зная цели question_option, я не могу точно сказать, какие это должны быть отношения. Глядя на возвращаемые значения, я могу только предположить, что это должно быть question has many question_options. Вам придется подумать об этом самостоятельно и соответствующим образом установить поле отношения. После того, как он установлен и вы видите отношение question_option или question_options в вашем типе контента question, в зависимости от типа указанного вами отношения, вы можете запросить questions с их параметрами.

Другие вопросы по теме