.updateOne()
指定された条件に一致するレコードが存在する場合、そのレコードを更新します。
var updatedRecord = await Something.updateOne(criteria)
.set(valuesToSet);
データベースを変更する前に、Waterlineは指定された条件に一致するレコードが複数存在しないかを確認します。複数存在する場合は、処理を続行せずにエラーをスローします。
引数 | 型 | 詳細 | |
---|---|---|---|
1 | criteria | データベース内のレコードをマッチングするために使用するWaterlineの条件。 | |
2 | valuesToSet | 一致するすべてのレコードが更新されるべき値の辞書(プレーンなJavaScriptオブジェクト)。(このモデルが"スキーマフル"モードの場合、余分なキーは黙って省略されることに注意してください。) |
注意: Sails v1.0 / Waterline 0.13以降、パフォーマンス上の理由から、このモデルメソッドに渡された
valuesToSet
オブジェクトは、ほとんどの場合、インプレースで変更されます(Sails/Waterline v0.12では必ずしもそうではありませんでした)。
型 | 説明 |
---|---|
updateOne() は一度に複数のレコードを更新することはありません。したがって、レコードが更新された場合は、そのレコードが結果として提供されます。それ以外の場合は、undefined が返されます。 |
SailsおよびWaterlineでのエラー処理の例については、概念 > モデルとORM > エラーを参照してください。
var updatedUser = await User.updateOne({ firstName:'Pen' })
.set({
firstName:'Finn'
});
if (updatedUser) {
sails.log('Updated the user named "Pen" so that their new name is "Finn".');
}
else {
sails.log('The database does not contain a user named "Pen".');
}
- このメソッドは、一致するレコードがあった場合は常に変更されたレコードを返すため、.fetch()をサポートしていません。
- このメソッドは、
await
、promiseチェーン、または従来のNodeコールバックで使用できます。- このメソッドは、コレクション全体の関連付け(たとえば、ユーザーの友達リスト)を置き換えるために使用でき、
replaceCollection
メソッドと同じ結果が得られます。コレクション内のアイテムを個別に変更するには、addToCollection
またはremoveFromCollectionメソッドを使用します。