- MongoDB進階與實戰:微服務整合、性能優化、架構管理
- 唐卓章
- 526字
- 2021-05-19 17:44:40
2.6 刪除文檔
2.6.1 刪除單個文檔
執行下面的命令,刪除單個book文檔:

注意:remove命令會刪除匹配條件的全部文檔,由于_id是唯一的,所以上述命令最多只會刪除一個文檔。如果希望明確限定只刪除一個文檔,則需要指定justOne參數,命令格式如下:

例如:

該命令將會刪除滿足type:novel條件的首條記錄。
MongoDB 3.2版本提供了delete語義的命令,因此也可以使用deleteOne方法來實現刪除單個文檔,代碼如下:

2.6.2 刪除指定條件文檔
指定刪除某個分類的book文檔,代碼如下:

同樣的效果可以使用deleteMany命令實現,代碼如下:

2.6.3 刪除全部文檔
刪除全部文檔,代碼如下:

或者使用deleteMany命令實現,代碼如下:

remove、deleteMany等命令需要對查詢范圍內的文檔逐個刪除,如果希望刪除整個集合,則使用drop命令會更加高效,代碼如下:

drop命令會同時刪除集合的全部索引。
同理,如果刪除的文檔非常多(僅希望保留集合中的一小部分數據),則可以先備份保留數據,執行drop命令之后再重建集合。
2.6.4 返回被刪除文檔
remove、deleteOne等命令在刪除文檔后只會返回確認性的信息,如果希望獲得被刪除的文檔,則可以使用findOneAndDelete命令,代碼如下:

除了在結果中返回刪除文檔,findOneAndDelete命令還允許定義“刪除的順序”,即按照指定順序刪除找到的第一個文檔,代碼如下:

remove、deleteOne等命令只能按默認順序刪除,利用這些特點,findOneAndDelete可以實現一些有趣的功能,諸如隊列的先進先出動作。
推薦閱讀
- Advanced Machine Learning with Python
- 大學計算機基礎實驗教程
- Effective Python Penetration Testing
- 用Python實現深度學習框架
- INSTANT Django 1.5 Application Development Starter
- C語言程序設計
- 高級語言程序設計(C語言版):基于計算思維能力培養
- Visual FoxPro程序設計習題集及實驗指導(第四版)
- Node Cookbook(Second Edition)
- C# and .NET Core Test Driven Development
- Spring Boot+Vue全棧開發實戰
- 零基礎學Kotlin之Android項目開發實戰
- C語言程序設計習題與實驗指導
- Learning Jakarta Struts 1.2: a concise and practical tutorial
- Redmine Cookbook