>
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が恋しい。