Hasura の query の where に配列を与えて複数の値で絞り込む
Tweetwhere で _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
}
}
`;