複数のドキュメントの更新
項目一覧
クエリ ビルダーで update()
メソッドを呼び出すことで、コレクション内の複数のドキュメントをアップデートできます。
クエリフィルターをwhere()
メソッドに渡して、一連の条件を満たすドキュメントを検索します。 次に、対象のドキュメントの変更をupdate()
メソッドに渡して、一致するドキュメントをアップデートします。
Tip
Lambda 統合を使用してデータを更新する方法の詳細については、 書込み操作ガイドの ドキュメントの変更 セクションを参照してください。
例
次の Eloquent タブと Query Builder タブから選択すると、対応するそれぞれの クエリ構文を使用する同じ操作の使用例が表示されます。
この例では、次のアクションを実行します。
Movie
Eloent モデルを使用して、sample_mflix
データベース内のmovies
コレクションを表しますクエリフィルターに一致する
movies
コレクションからドキュメントを更新します更新されたドキュメントの数を出力します
この例では、 Movie
モデルで次のメソッドを呼び出します。
where()
:imdb.rating
のネストされたフィールドの値が9.0
より大きいドキュメントに一致しますupdate()
:acclaimed
フィールドを追加し、その値をtrue
に設定して一致するドキュメントを更新し、更新されたドキュメントの数を返します
$updates = Movie::where('imdb.rating', '>', 9.0) ->update(['acclaimed' => true]); echo 'Updated documents: ' . $updates;
Updated documents: 20
この例では、次のアクションを実行します。
DB
ファサードからtable()
メソッドを呼び出してmovies
コレクションにアクセスしますクエリフィルターに一致する
movies
コレクションからドキュメントを更新します更新されたドキュメントの数を出力します
この例では、次のクエリ ビルダのメソッドを呼び出します。
where()
:imdb.rating
のネストされたフィールドの値が9.0
より大きいドキュメントに一致しますupdate()
:acclaimed
フィールドを追加し、その値をtrue
に設定して一致するドキュメントを更新し、更新されたドキュメントの数を返します
$updates = DB::table('movies') ->where('imdb.rating', '>', 9.0) ->update(['acclaimed' => true]); echo 'Updated documents: ' . $updates;
Updated documents: 20
Lambda アプリケーションを編集して使用例を実行する方法については、使用例のランディング ページ を参照してください。