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

Raf*_*yan 20 graphql graphql-js

我正在尝试查询具有ID数组的对象列表.类似于以下SQL查询的东西:

SELECT name FROM events WHERE id IN(1,2,3,...);
Run Code Online (Sandbox Code Playgroud)

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

bro*_*ess 30

你绝对可以查询一组值!这是查询本身的样子:

{
  events(containsId: [1,2,3]) {
    ...
  }
}
Run Code Online (Sandbox Code Playgroud)

类型看起来像:

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

如果你想参数化这个查询,这里有一个例子:

{
  query: `
    query events ($containsId: [Int]) {
      events(containsId: $containsId) {
        id
        name
      }
    }
  `,
  variables: {
    containsId: [1,2,3]
  }
}
Run Code Online (Sandbox Code Playgroud)

  • 架构会是什么样的? (7认同)
  • 使用查询变量而不是直接在查询中对其进行硬编码时,[1,2,3] 会是什么样子? (2认同)