deleteOne() (単一ドキュメントの削除)
最終更新:2026-10-09
deleteOne() (単一ドキュメントの削除)
deleteOne() はフィルタに一致する最初のドキュメントを削除します。複数一致した場合も、自然順序で最初の1件だけが削除されます。結果には deletedCount(0 または 1)が含まれます。削除は元に戻せないため、先に `db.users.findOne({ name: 'Alice' })` で対象を確認するのが賢明です。単一ドキュメントの削除には最も直接的な方法です。
| カテゴリ | 書き込み |
|---|---|
| MongoDB バージョン | 1.0+ |
| 例の言語 | mongosh(シェル) |
📝 構文
db.<collection>.deleteOne(<filter>, { writeConcern: <options> })
⚙️ パラメータ
| フィルター条件 | 削除するドキュメントにマッチする述語。 |
|---|---|
| writeConcern | 任意。書き込み保証(write concern)。 |
戻り値:DeleteResult: { acknowledged, deletedCount }。
▶ 例
以下のコマンドをローカルの mongosh で実行してください(mongod が起動済みである必要があります):
// deleteOne: Alice という名前のユーザーを削除する
db.users.deleteOne({ name: 'Alice' })
出力:
{ acknowledged: true, deletedCount: 1 }
📌 注意事項
- 最初の一致のみを削除する。全件削除には deleteMany() を使う
- deletedCount が 0 は一致なしを意味する(エラーではない)
- 削除は元に戻せない。本番環境では削除前に確認する
🏷️ 関連タグ
💡 関連ケース
📚 関連チュートリアル
❓ よくある質問
QdeleteOne は一致するすべてのドキュメントを削除しますか?
Aいいえ、deleteOne() は最初の一致のみを削除します。全一致の削除には deleteMany() を使います。
Q一致するものが無い場合、deleteOne はエラーを投げますか?
Aエラーにはなりません。deletedCount: 0 を返し、フィルタが何かに一致したかを伝えます。
Q削除したドキュメントは復元できますか?
AAPI 経由ではできません。削除は物理的なものです。復元はバックアップか oplog(レプリカセット)に依存するため、重要なデータは先にバックアップしてください。