.update()条件に一致するすべてのレコードを更新します。
await Something.update(criteria)
.set(valuesToSet);
または
var updatedRecords = await Something.update(criteria).set(valuesToSet).fetch();| 引数 | 型 | 詳細 | |
|---|---|---|---|
| 1 | criteria | データベース内のレコードをマッチングするために使用するWaterlineのcriteriaです。updateクエリは、skipとlimitを使用したページネーションや、selectを使用したプロジェクションをサポートしていません。 |
|
| 2 | valuesToSet | 一致するすべてのレコードを更新する値の辞書(プレーンなJavaScriptオブジェクト)です。(このモデルが「スキーマフル」モードである場合、余分なキーはすべて黙って省略されることに注意してください。) |
注: パフォーマンス上の理由から、Sails v1.0 / Waterline 0.13以降では、このモデルメソッドに渡される
valuesToSetオブジェクトは、ほとんどの場合、その場で変更されます(Sails/Waterline v0.12では、必ずしもそうではありませんでした)。
| 型 | 説明 |
|---|---|
パフォーマンスを最適化するために、デフォルトでは更新されたレコードは結果として提供されません。デフォルト設定をオーバーライドするには、.fetch()をチェーンすると、更新されたレコードの配列が返されます。(これは、一部のアダプターでは追加のデータベースクエリが必要になることに注意してください。) |
| 名前 | 型 | いつ? |
|---|---|---|
| UsageError | 無効なものが渡された場合にスローされます。 | |
| AdapterError | データベースアダプターで問題が発生した場合にスローされます。ユニーク制約違反(つまり、1つ以上のレコードを更新してユニーク制約に違反させようとした場合)を処理する方法の例については、概念 > モデルとORM > エラーを参照してください。 | |
| Error | その他予期しない事態が発生した場合にスローされます。 |
SailsおよびWaterlineでのエラー処理の例については、概念 > モデルとORM > エラーを参照してください。
| キー | 型 | 詳細 |
|---|---|---|
| fetch | trueに設定すると、更新されたレコードの配列が返されます。デフォルトは falseです。 |
メタキーの詳細については、.meta()を参照してください。
特定のレコードを更新するには、.updateOne()を使用してください。
または、1つ以上のレコードを同時に更新する場合
await User.update({ name:'Pen' })
.set({
name:'Finn'
});
sails.log('Updated all users named Pen so that their new name is "Finn". I hope they like it.');
更新されたレコードを取得するには、fetchメタキーを有効にしてください
var updatedUsers = await User.update({name:'Finn'})
.set({
name:'Jake'
})
.fetch();
sails.log(`Updated all ${updatedUsers.length} user${updatedUsers.length===1?'':'s'} named "Finn" to have the name "Jake". Here they are now:`);
sails.log(updatedUsers);
- このメソッドは、
await、Promiseチェーン、または従来のNodeコールバックで使用できます。- このメソッドは、コレクション全体の関連付けを置き換えるために使用できます(たとえば、ユーザーの友達リスト)。これは
replaceCollectionメソッドと同じ結果になります。コレクション内の項目を個別に変更するには、addToCollectionまたはremoveFromCollectionメソッドを使用してください。