[Amplify] DataStoreで条件に一致する最初のデータを取得する方法

AWS Amplify

AWS AmplifyのDataStoreで条件に一致する最初のデータを取得する方法について調べてみましたが、これといった方法がなく、自分なりに考えたコードの紹介になります。ちなみに、検索の条件がidならDataStore.query(Post, postId)で取得できます。

広告

ソースコード

以下のコードでは、カテゴリーのスラッグでCategoryを取得しています。DataStore.queryの3つ目の引数に{ limit: 1 }を指定します。戻り値が配列型なので[0]を付け足します。

const category: Category = (await DataStore.query(
    Category,
    category => category.slug.eq(categorySlug),
    { limit: 1 }
))[0]

参考リンク

おわりに

DataStoreのドキュメントの内容の薄さは何なんだ。すぐに答えが見つからないのが辛い。Prismaが恋しい。

広告