コレクション内のドキュメントを更新するには、単一のドキュメントを取得し、Eloent モデルで update() メソッドを呼び出します。
クエリフィルターをwhere()メソッドに渡し、一致するドキュメントを並べ替え、最初のドキュメントのみを取得するにはfirst()メソッドを呼び出します。 次に、対象のドキュメントの変更をupdate()メソッドに渡して、一致するドキュメントをアップデートします。
Tip
Lambda 統合を使用してデータを更新する方法の詳細については、 書込み操作ガイドの ドキュメントの変更 セクションを参照してください。
例
この例では、次のアクションを実行します。
MovieEloent モデルを使用して、sample_mflixデータベース内のmoviesコレクションを表しますクエリフィルターに一致する
moviesコレクションからドキュメントを更新します更新されたドキュメントの数を出力します
この例では、 Movieモデルで次のメソッドを呼び出します。
where():titleフィールドの値が"Carol"であるドキュメントに一致しますorderBy(): 一致したドキュメントを_id値の昇順で並べ替えますfirst(): 最初に一致するドキュメントのみを検索update():imdb.ratingネストされたフィールドの値を6.9から7.3にアップデートし、imdb.votesネストされたフィールドの値を493から142000にアップデートします。
$updates = Movie::where('title', 'Carol') ->orderBy('id') ->first() ->update([ 'imdb' => [ 'rating' => 7.3, 'votes' => 142000, ], ]); echo 'Updated documents: ' . $updates;
Updated documents: 1
Lambda アプリケーションを編集して使用例を実行する方法については、使用例のランディング ページ を参照してください。