deleteMany() (複数ドキュメントの削除)

最終更新:2026-10-09

deleteMany() (複数ドキュメントの削除)

deleteMany() はフィルタに一致するすべてのドキュメントを削除し、deletedCount を返します。古いログの一掃やユーザーの無効化など、一括クリーンアップの主力です。警告: 空フィルタ {} はコレクション全体を空にします。実行前にフィルタを必ず確認してください。削除は元に戻せません。リスクのある操作では、先に `db.users.countDocuments({ status: 'expired' })` で影響範囲を確認しましょう。

カテゴリ書き込み
MongoDB バージョン1.0+
例の言語mongosh(シェル)

📝 構文

db.<collection>.deleteMany(<filter>, { writeConcern: <options> })

⚙️ パラメータ

フィルター条件削除対象のドキュメントに一致する述語。空の {} はすべてを削除します。
writeConcern任意。書き込み保証(write concern)。

戻り値:DeleteResult: { acknowledged, deletedCount }。

▶ 例

以下のコマンドをローカルの mongosh で実行してください(mongod が起動済みである必要があります):

// deleteMany: 18歳未満のユーザーを全員削除する
db.users.deleteMany({ age: { $lt: 18 } })

出力:

{ acknowledged: true, deletedCount: 5 }

📌 注意事項

📚 関連チュートリアル

❓ よくある質問

QdeleteMany に空フィルタを渡すとどうなりますか?
A空フィルタ {} はすべてに一致し、コレクション全体を削除します。誤って実行しないように注意してください。
QdeleteMany と drop の違いは何ですか?
AdeleteMany() はドキュメントを削除しますが、コレクションとインデックスは残します。drop() はコレクション自体を削除し、インデックスとメタデータも含まれます。
QdeleteMany が削除した件数を知るには?
A結果の deletedCount を読みます。例: const r = db.users.deleteMany({status: 'del'}); r.deletedCount
Web-Tutorial.com

Web-Tutorial 技術チーム

複数の開発者によって共同維持されているプログラミングチュートリアルプラットフォーム。各チュートリアルは専門分野の開発者が執筆・レビューしています。正確で信頼性の高いコンテンツを目指しています — 問題を見つけた場合はお知らせください。

100%