Docs Menu

複数のドキュメントの更新

項目一覧

クエリ ビルダーで 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 アプリケーションを編集して使用例を実行する方法については、使用例のランディング ページ を参照してください。

項目一覧