ホームページ  >  記事  >  バックエンド開発  >  Mongo の異なるキーに基づいて 1 つのクエリで複数のレコードを更新するにはどうすればよいですか?

Mongo の異なるキーに基づいて 1 つのクエリで複数のレコードを更新するにはどうすればよいですか?

PHPz
PHPz転載
2024-02-15 11:51:08673ブラウズ

如何在一个查询中根据 Mongo 中的不同键更新多条记录?

MongoDB を使用する場合、異なるキーに基づいて複数のレコードを更新する必要がある場合があり、混乱する可能性があります。ただし、幸いなことに、MongoDB では、一括書き込み操作を使用してこの目標を達成できます。一括書き込みは、複数の更新、挿入、または削除の操作を 1 回の操作で実行できる一括書き込み操作です。この記事では、Mongo で Bulk Write を使用して、異なるキーに基づいて複数のレコードを更新する方法を紹介します。

質問内容

次のようなことがあれば…

リーリー

insertmany クエリで次の更新を適用することは可能ですか?

リーリー

もしそうなら、golang を使用してどのように実行されますか?

具体的には、collection.updatemany(context.todo(), filter, update) を使用すると、filterupdate はどうなりますか?

###ご協力いただきありがとうございます。

回避策

異なるドキュメントを照合できないため、

collection.updatemany() 呼び出しではこれを実行できません。別の更新を適用してください。書類。 collection.updatemany() を複数回 (異なる更新ドキュメントごとに 1 回) 呼び出す必要があります。

これを 1 回の呼び出しで効率的に実行したい場合は、

collection.bulkwrite() を使用できます。ドキュメントの更新ごとに異なる mongo.writemodel を準備する必要があります。

次のようになります:

リーリー

上記のスライス リテラルには「繰り返し」が多すぎます。ヘルパー関数を使用してそれらをキャプチャできます。

リーリー

また、更新に簡単に定義できるロジックがある場合は、すべての要素をリストする代わりにループを使用します。

リーリー

次のように 1 回の呼び出しですべての更新を実行できます:

リーリー

関連コンテンツの表示:

mongodb はドキュメント配列を更新し、置換ドキュメント配列で置き換えます

以上がMongo の異なるキーに基づいて 1 つのクエリで複数のレコードを更新するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はstackoverflow.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。