如何在GraphQL中查询数组作为参数的对象列表

时间:2016-11-16 23:40:57

标签: graphql graphql-js

我试图查询具有ID数组的对象列表。类似于以下SQL查询的东西:

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

我如何在GraphQL中实现这一目标?

1 个答案:

答案 0 :(得分:25)

您绝对可以使用数组值进行查询!这是查询本身的样子:

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