where で _in を使うことで配列を渡せる

該当ドキュメント

Hasura で query を定義する際に、where を使って絞り込むことが可能ですが、絞り込みに使う値が配列の場合には _in を使います。例えば user_id の配列を _in に渡すことで、複数人の user の tweet だけに絞り込む、といったことが可能になります。

単一の場合

まずは通常の、単一の値で絞り込むケースをみてみましょう。

user_id が指定した id である tweet だけを取得します。

これだと、例えば userId = "1", "100", "190" の三人のツイートをみたい場合に困ってしまいます。

gql`
  query myTimeline($userId: String!) {
    tweet(where: { user_id: { _eq: $userId } } {
      title
      date
    }
  }
`;

_in に配列を渡す

そういった場合に _in を使用します。

userIdList には ["1", "100", "190"] のような配列がわたってきます。

こうすることで userId = "1", "100", "190" の三人のツイートだけを取得することができます。

gql`
  query myTimeline($userIdList: [String!]!) {
    tweet(where: { user_id: { _in: $userIdList } }) {
      title
      date
    }
  }
`;