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

updateMany()

特定の条件に合致した全ての行を指定した値に更新します。

使用できるキー

キー名内容省略備考
where更新条件の指定書かない場合は全ての行が対象になります
data更新するデータ不可
limit更新する最大件数負数を指定するとエラーになります

説明例用のシート

説明用シート

説明

上記例から以下の処理を行いたいとします。

  • age => 20 を 21 にする

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

const gassma = new Gassma.GassmaClient();

// gassma.{{TARGET_SHEET_NAME}}.updateMany
const result = gassma.sheet1.updateMany({
where: {
age: 20,
},
data: {
age: 21,
},
});

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

{
count: 1;
}

更新された行の数が返されます。

またwhereの仕様はfindMany()の記事に準拠します。

limit

更新する最大件数を指定できます。

// 最大 2 件のみ更新
const result = gassma.sheet1.updateMany({
where: {
pref: "Tokyo",
},
data: {
age: 99,
},
limit: 2,
});

limit: 0 を指定すると 0 件更新(何も更新しない)となります。

注意

limit に負数を指定すると GassmaLimitNegativeError がスローされます。

数値の原子的操作

dataincrement / decrement / multiply / divide を指定すると、現在値に対して演算を行えます。

// 全員の age を 1 加算する
const result = gassma.sheet1.updateMany({
data: {
age: { increment: 1 },
},
});
操作動作
increment加算{ increment: 5 } → 現在値 + 5
decrement減算{ decrement: 3 } → 現在値 - 3
multiply乗算{ multiply: 2 } → 現在値 × 2
divide除算{ divide: 4 } → 現在値 ÷ 4

現在値が数値でない場合は 0 をベースとして演算されます。詳しくは update() を参照してください。