メインコンテンツまでスキップ

findFirstOrThrow()

特定の条件に合致した最初の行を取り出したい場合に利用します。findFirst と同じ動作ですが、レコードが見つからない場合に null ではなくエラーをスローします。

使用できるキー

キー名内容省略備考
where取得条件の指定書かない場合は全ての行を取得します
select取得列の表示設定omit / include と同時に使用できません
omit取得列の除外設定select と同時に使用できません
includeリレーション先の取得詳細はこちら
orderByソート設定指定する列が 1 つの場合、配列の省略が可能です
take取得数の設定
skipスキップ数の設定
distinct重複削除の設定指定する列が 1 つの場合、配列の省略が可能です

説明例用のシート

説明用シート

説明

上記例から以下の条件の行を取り出したいとします。

  • age => 20 以上

この場合以下のコードとなります。

const gassma = new Gassma.GassmaClient();

// gassma.{{TARGET_SHEET_NAME}}.findFirstOrThrow
const result = gassma.sheet1.findFirstOrThrow({
where: {
age: {
gte: 20,
},
},
});

戻り値は以下の形式です。

{
name: 'akahoshi',
age: 22,
pref: 'Ibaraki',
postNumber: '310-8555'
}

findFirst との違い

レコードが見つからない場合の動作が異なります。

// findFirst の場合 → null が返る
const result = gassma.sheet1.findFirst({
where: { name: "存在しない名前" },
});
// => null

// findFirstOrThrow の場合 → NotFoundError がスローされる
const result = gassma.sheet1.findFirstOrThrow({
where: { name: "存在しない名前" },
});
// => NotFoundError: No record found

それ以外の仕様については findMany() に準拠します。