Как запросить список объектов с массивом в качестве аргумента в GraphQL

Я пытаюсь запросить список объектов с массивом идентификаторов. Что-то похожее на следующий SQL-запрос:

SELECT name FROM events WHERE id IN(1,2,3,...);

Как достичь этого в GraphQL?

Ответы

Ответ 1

Вы можете запросить массив значений! Вот как выглядит сам запрос:

{
  events(containsId: [1,2,3]) {
    ...
  }
}

И тип будет выглядеть примерно так:

const eventsType = new GraphQLObjectType({
  name: 'events',
  type: // your type definition for events,
  args: {
    containsId: new GraphQLList(GraphQLID)
  },
  ...
});

Если вы хотите параметризовать этот запрос, вот пример этого:

{
  query: '
    query events ($containsId: [Int]) {
      events(containsId: $containsId) {
        id
        name
      }
    }
  ',
  variables: {
    containsId: [1,2,3]
  }
}

Ответ 2

Может кто-нибудь ответить на вопрос @Khorkrak. Я сталкиваюсь с той же проблемой.

Ответ 3

запрос getResults ($ id: Long, $ createBy: [Long], $ start: Int, $ limit: Int) {   Результаты(   где: {id: {EQ: $ id}, создалBy: {IN: $ создалBy}}   страница: {start: $ start, limit: $ limit} ) {

Переменная запроса { "предел": 25, "начало": 1, "id": 1775, "CreatedBy": [0458] }

ошибка "message": "Переменная" createBy "имеет недопустимое значение. Ожидаемый тип" Long ", но был" Object [] '. ",

Кто-нибудь сталкивался с этой проблемой?