Count() および Remove() 関数 MongoDB 例を挙げて
⚡ スマートサマリー
Count() および Remove() 関数 MongoDB コレクションに含まれるドキュメントの数を報告し、コレクションからドキュメントを削除します。count() メソッドはドキュメントの総数を返し、remove() メソッドはすべてのドキュメントを削除するか、指定された条件に一致するドキュメントのみを削除します。

MongoDB Count() 関数
集計の概念は、クエリで返された結果に対して計算を実行することです。たとえば、実行されたクエリに従ってコレクション内のドキュメントの数を知りたいとします。 MongoDB count() 関数を提供します。
の例 MongoDB Count() 関数
この例を見てみましょう。
db.Employee.count()
Code 説明:
- 上記のコードは count 関数を実行します。
コマンドが正常に実行されると、次の出力が表示されます。
出力:
出力には、コレクション内に 4 つのドキュメントが存在することが明確に示されています。
MongoDB クエリ条件によるカウント
count() メソッドは、クエリ条件を渡す場合に最も役立ちます。これにより、コレクション全体ではなく、条件に一致するドキュメントのみをカウントできます。これは、部門に所属する従業員数や未処理の注文数など、レポートを作成する際に便利です。
次の例は、従業員IDが2より大きい従業員の数をカウントします。
db.Employee.count({Employeeid:{$gt:2}})
ここで何が起こるか:
- クエリオブジェクト {Employeeid:{$gt:2}} は、$gt (より大きい) 演算子を使用してフィルタとして機能します。
- count() は、フィルター条件を満たすドキュメントの数のみを返します。
- 残りのコレクションは合計には含まれません。
現在 MongoDB バージョンによっては、countDocuments() は条件付きカウントに推奨されるメソッドです。なぜなら、常に正確な結果を返すからです。同じクエリがそれでも動作します。
db.Employee.countDocuments({Employeeid:{$gt:2}})
どちらのコマンドも単一の数値を返します。この数値は変数に格納することも、直接表示することもできます。クエリ対象フィールドに一致するインデックスを追加することで、大規模なコレクションでも条件付きカウントを高速に実行できます。
変更の実行
他の2つの操作クラスは MongoDB は更新ステートメントと削除ステートメントです。
更新操作では既存のデータを変更でき、削除操作ではコレクションからデータを削除できます。
Remove() 関数の MongoDB
In MongoDB db.collection.remove() メソッドは、コレクションからドキュメントを削除するために使用されます。 すべてのドキュメントをコレクションから削除することも、特定の条件に一致するドキュメントのみをコレクションから削除することもできます。
単に削除コマンドを発行すると、すべてのドキュメントがコレクションから削除されます。
の例 MongoDB Remove() 関数
次のコード例は、コレクションから特定のドキュメントを削除する方法を示しています。
db.Employee.remove({Employeeid:22})
Code 説明:
- 上記のコードは削除関数を使用し、この場合は従業員 ID が 22 であるドキュメントを削除するという基準を指定します。
コマンドが正常に実行されると、次の出力が表示されます。
出力:
出力結果には、1つのドキュメントが削除されたことが表示されます。
すべてのドキュメントを削除するか、単一のドキュメントを削除するか
remove() メソッドは、渡される引数に応じて、一致するすべてのドキュメントを削除することも、1つのドキュメントだけを削除することもできます。この違いを理解しておくことで、意図しないデータ損失を防ぐことができます。
コレクション内のすべてのドキュメントを削除するには、空の条件を渡します。
db.Employee.remove({})
これはすべてのドキュメントを削除しますが、コレクション自体は保持します。条件に一致するドキュメントのみを削除するには、前述のようにクエリ オブジェクト {Employeeid:22} を渡します。複数のドキュメントが一致し、最初のドキュメントのみを削除したい場合は、justOne オプションを追加します。
db.Employee.remove({EmployeeName:"Smith"}, {justOne:true})
主な違いは次のとおりです。
- remove({}) はコレクション内のすべてのドキュメントを削除します。
- remove({condition}) は、条件に一致するすべてのドキュメントを削除します。
- remove({condition}, {justOne:true}) は、最初に一致したドキュメントのみを削除します。
削除コマンドを実行する前に必ず条件を再確認してください。フィルターが空または間違っていると、コレクション全体が削除される可能性があります。 MongoDBdeleteOne() と deleteMany() はこれらのパターンを置き換え、意図をより明確にします。
count() と remove() の現代的な代替手段
count() と remove() はどちらもレガシーメソッドです。 MongoDB ドライバーはそれらを非推奨としてマークし、より明確な代替手段を提供します。以下の表は、各旧方式を現代の同等の方式に対応付けたものです。
| レガシーメソッド | 現代の代替品 | 目的 |
|---|---|---|
| カウント() | countDocuments() | 一致するドキュメントの正確な数を返します |
| カウント() | 推定文書数() | すべてのドキュメントの概算数を高速に返します |
| 削除する() | deleteOne() | フィルターに一致する最初のドキュメントを削除します |
| 削除する() | deleteMany() | フィルターに一致するすべてのドキュメントを削除します |
新規アプリケーションでは、これらの最新の手法を推奨します。これらの手法では、カウントと推定、および1つのドキュメントの削除と複数のドキュメントの削除が分離されているため、クエリがより安全で読みやすくなります。従来の count() および remove() は、古いチュートリアルやスクリプトでは引き続き使用できます。


