MongoDB:1回の操作で複数のドキュメントを更新

オニラマーフ

MongoDBで多くのドキュメントを更新する必要があり、サーバーを使用した1回の操作でこれを実行したいと思います。

MYSQLなどのリレーショナルデータベースでは、次のようにします。

$mysql = new MySQLi($host, $user, $pwd, $db, $port);
$q = "INSERT INTO table (idField, field) VALUES ";

foreach($elements as $el) {
  $q .= "({$el->id}, {$el->field}),";
}

$q = substr($q, 0, -1) . " ON DUPLICATE KEY UPDATE field = VALUES(field)";
$mysql->query($q);

MongoDBでも同じことをする可能性はありますか?現時点では、次のようなものがあります。

$mongo = new MongoDB\Client("mongodb://{$host}:{$port}");
$col = $mongo->selectDatabase($db)->selectCollection($collectionName);

foreach($elements as $el) {
  $col->updateOne(array("id" => $el->id), array("field" => $el->field));
}

ただし、これによりデータベースへの接続が多くなり、数十億行のプロセスが非常に遅くなります。

編集:

以下は、開始データセットの例です。

{idField: 1, field: "A"}
{idField: 2, field: "B"}
{idField: 3, field: "C"}

次に、idFieldが1のフィールドをAlphaに、fieldAdded with Aleph、2をBetaに変更し、Bet、3をGammaに追加し、Ghimelを追加して、次の結果セットを取得します。

{idField: 1, field: "Alpha", fieldAdded: "Aleph"}
{idField: 2, field: "Beta", fieldAdded: "Bet"}
{idField: 3, field: "Gamma", fieldAdded: "Ghimel"}

データベースへの1回のリクエストでこれを行うことは可能ですか?

クリダム

bulkWrite次のように一括更新を行う方法を使用します

$ops = array();      

foreach ($elements as $el) {  
    $update = [
        'updateOne' => [
            [ 'id' => $el->id ], 
            [ '$set' => [ 'field' => $el->field ] ]
        ]
    ];          
    array_push($ops, $update);                        
}

$result = $col->bulkWrite($ops);
echo $result->getModifiedCount();

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Elastic-1回のリクエストで複数のドキュメントを更新

分類Dev

MongoDB:1つのコマンドで複数のドキュメントを更新する方法は?

分類Dev

MongoDBで複数のドキュメントを1つのドキュメントに変換する

分類Dev

MongoDBで複数のドキュメントを挿入または更新する

分類Dev

MongoDBの1回のクエリでさまざまなドキュメントを更新できますか?

分類Dev

RecyclerViewで複数のドキュメントを更新する方法

分類Dev

ElasticsearchNestを使用して1回の操作でIDによって複数のドキュメントを削除する方法

分類Dev

MongoDBの複数のサブドキュメント配列を更新する

分類Dev

Mongoose-1回の関数呼び出しで複数のドキュメントを削除します

分類Dev

Mongoose-1回の関数呼び出しで複数のドキュメントを削除します

分類Dev

MongoDB-複数のキーで重複ドキュメントを検索

分類Dev

Google Firestore-1回の往復で複数のIDでドキュメントを取得する方法?

分類Dev

Meteorで1回の呼び出しを使用してmongodbに複数のドキュメントを挿入する

分類Dev

1回のDB呼び出しで複数のドキュメントを置き換える方法

分類Dev

MongoDBの位置$演算子は、複数のドキュメントを更新していないようです

分類Dev

マングースを使用した1つのドキュメントでの複数の更新

分類Dev

本文、mongoose / mongodbでドキュメントを提供することにより、複数のドキュメントを更新します

分類Dev

MongoDB-複数のドキュメントの配列内の複数のサブドキュメントを更新します

分類Dev

1回の呼び出しで異なるドキュメント内の複数のサブドキュメントを更新する方法をマングース-MERNスタック

分類Dev

MongoDBの複数のドキュメントに埋め込まれた複数のドキュメントを更新する

分類Dev

複数のネストされたドキュメントのMongoDB更新配列

分類Dev

1つのPentahoKettleトランスフォーメーション内で1つのドキュメントの複数のExcelシートを更新します

分類Dev

mongodbで複数のドキュメントを削除する方法は?

分類Dev

複数のドキュメントを更新する方法は?

分類Dev

異なる値で複数のドキュメントを更新する

分類Dev

Elasticsearchで複数のドキュメントを更新しますか?

分類Dev

MongoDBで複数の条件で複数のドキュメントを更新するにはどうすればよいですか?

分類Dev

Java + MongoDB:ドキュメント内の複数のフィールドを更新する

分類Dev

LaTeXドキュメントへの複数の回帰の出力

Related 関連記事

  1. 1

    Elastic-1回のリクエストで複数のドキュメントを更新

  2. 2

    MongoDB:1つのコマンドで複数のドキュメントを更新する方法は?

  3. 3

    MongoDBで複数のドキュメントを1つのドキュメントに変換する

  4. 4

    MongoDBで複数のドキュメントを挿入または更新する

  5. 5

    MongoDBの1回のクエリでさまざまなドキュメントを更新できますか?

  6. 6

    RecyclerViewで複数のドキュメントを更新する方法

  7. 7

    ElasticsearchNestを使用して1回の操作でIDによって複数のドキュメントを削除する方法

  8. 8

    MongoDBの複数のサブドキュメント配列を更新する

  9. 9

    Mongoose-1回の関数呼び出しで複数のドキュメントを削除します

  10. 10

    Mongoose-1回の関数呼び出しで複数のドキュメントを削除します

  11. 11

    MongoDB-複数のキーで重複ドキュメントを検索

  12. 12

    Google Firestore-1回の往復で複数のIDでドキュメントを取得する方法?

  13. 13

    Meteorで1回の呼び出しを使用してmongodbに複数のドキュメントを挿入する

  14. 14

    1回のDB呼び出しで複数のドキュメントを置き換える方法

  15. 15

    MongoDBの位置$演算子は、複数のドキュメントを更新していないようです

  16. 16

    マングースを使用した1つのドキュメントでの複数の更新

  17. 17

    本文、mongoose / mongodbでドキュメントを提供することにより、複数のドキュメントを更新します

  18. 18

    MongoDB-複数のドキュメントの配列内の複数のサブドキュメントを更新します

  19. 19

    1回の呼び出しで異なるドキュメント内の複数のサブドキュメントを更新する方法をマングース-MERNスタック

  20. 20

    MongoDBの複数のドキュメントに埋め込まれた複数のドキュメントを更新する

  21. 21

    複数のネストされたドキュメントのMongoDB更新配列

  22. 22

    1つのPentahoKettleトランスフォーメーション内で1つのドキュメントの複数のExcelシートを更新します

  23. 23

    mongodbで複数のドキュメントを削除する方法は?

  24. 24

    複数のドキュメントを更新する方法は?

  25. 25

    異なる値で複数のドキュメントを更新する

  26. 26

    Elasticsearchで複数のドキュメントを更新しますか?

  27. 27

    MongoDBで複数の条件で複数のドキュメントを更新するにはどうすればよいですか?

  28. 28

    Java + MongoDB:ドキュメント内の複数のフィールドを更新する

  29. 29

    LaTeXドキュメントへの複数の回帰の出力

ホットタグ

アーカイブ