.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メソッドを使用してください。