--- id: python-mongodb-delete title: "Python MongoDB Delete" category: "Programming_Language" status: "draft" verification_status: "conceptual" canonical_id: "" aliases: ["delete_one()", "delete_many()", "파이썬 MongoDB 삭제"] duplicate_of: "" source_trust_level: "B" confidence_score: 0.9 created_at: 2026-07-04 updated_at: 2026-07-04 review_reason: "" merge_history: [] tags: ["python", "mongodb", "w3schools", "delete"] raw_sources: ["https://www.w3schools.com/python/python_mongodb_delete.asp"] applied_in: [] github_commit: "" --- # [[Python MongoDB Delete]] ## 🎯 한 줄 통찰 (One-line insight) `delete_many({})` with an EMPTY query object deletes every document in the collection — the empty-filter-means-everything convention is the same footgun as SQL's missing-WHERE-clause deletes everything. [S1] ## 🧠 핵심 개념 (Core concepts) - **`delete_one(query)`** — deletes the FIRST document matching the query, even if multiple match. [S1] - **`delete_many(query)`** — deletes ALL documents matching the query. [S1] - **`delete_many({})`** — empty query object deletes ALL documents in the collection. [S1] - **`DeleteResult.deleted_count`** — the number of documents actually deleted. [S1] ## 🧩 추출된 패턴 (Extracted patterns) - **Empty filter = delete everything** — matches the same risk pattern as omitting WHERE in SQL DELETE; MongoDB's version of the danger is passing `{}` to `delete_many()`. [S1] ## 📖 세부 내용 (Details) - Delete one (first match only): `myquery = {"address": "Mountain 21"}; mycol.delete_one(myquery)`. [S1] - Delete many by regex: `myquery = {"address": {"$regex": "^S"}}; x = mycol.delete_many(myquery); print(x.deleted_count, "documents deleted.")`. [S1] - Delete all in collection: `x = mycol.delete_many({}); print(x.deleted_count, "documents deleted.")`. [S1] ## ⚖️ 모순 및 업데이트 (Contradictions & updates) 소스에서 모순되는 정보는 발견되지 않음. ## 🛠️ 적용 사례 (Applied in summary) 현재 발견된 실제 적용 사례가 없습니다 — SQL Delete의 "WHERE 누락 = 전체 삭제" 위험이 MongoDB에서는 "빈 쿼리 객체 = 전체 삭제"로 그대로 재현된다. [S1] ## 💻 코드 패턴 (Code patterns) Delete all documents in a collection (Python): ```python x = mycol.delete_many({}) print(x.deleted_count, " documents deleted.") ``` ## ✅ 검증 상태 및 신뢰도 - **상태:** draft - **검증 단계:** conceptual - **출처 신뢰도:** B (W3Schools — widely used educational reference, not a primary standards body) - **신뢰 점수:** 0.90 - **중복 검사 결과:** 신규 생성 (New discovery) ## 🔗 지식 그래프 (Knowledge Graph) - **상위/루트:** [[Python Tutorial]] - **관련 개념:** [[Python MongoDB Query]], [[SQL Delete]], [[Python MongoDB Drop Collection]] - **참조 맥락:** SQL Delete의 WHERE 누락 위험이 MongoDB의 빈 쿼리 객체로 재현된다. ## 📚 출처 (Sources) - [S1] W3Schools — Python MongoDB Delete Document — https://www.w3schools.com/python/python_mongodb_delete.asp ## 📝 변경 이력 (Change history) - 2026-07-04: Initial draft synthesized from the W3Schools "Python MongoDB Delete Document" page (Astra wiki-curation, P-Reinforce v3.1 format).