3

私のmongo dbには、次のようなコレクション名が含まれています

10.9.40.46
10.9.40.47
10.9.40.48
10.9.40.49
10.9.40.50
10.9.40.51
10.9.40.52

N 個のドキュメントを持つすべてのコレクションで、すべてのドキュメントはデフォルトで「ステータス」として共通のキー名を持っていました。コレクションを更新して「ステータス」を 1 から 0 に変更すると、次のクエリを使用します。

 db.getCollection("10.9.40.46").update({"status":1},{$set:{"status":0}},false,true)

上記のクエリは正常に機能しますが、すべてのコレクションを更新してから、コレクション名を手動でクエリに渡したいので、MongoDB にはデータベースを使用し、そのデータベース内のすべてのコレクション ドキュメントを単一のクエリなどを使用して更新するという概念がありますか? また、ループを使用してすべてのコレクションを読み取り、ドキュメントを更新しましたが、コレクションの数が多いため、時間がかかります。

4

2 に答える 2

12

いいえ、1 つのコマンドで複数のコレクションに対して同じ操作を実行する API はありません。これは、通常、コレクションを使用する方法でコレクションを使用しないためです。コレクションは、コンテンツやキーに基づいてグループ化するためではなく、同じタイプのドキュメントをグループ化するために使用されます。

ドキュメントを整理する通常の方法は、それらをすべて 1 つのコレクションにまとめ、各ドキュメントに IP アドレスのフィールドを追加し、検索を高速化するために IP フィールドにインデックスを作成することです。

于 2013-10-05T14:52:17.900 に答える