官术网_书友最值得收藏!

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可以實現一些有趣的功能,諸如隊列的先進先出動作。

主站蜘蛛池模板: 海兴县| 石泉县| 银川市| 丰都县| 兴安县| 都江堰市| 勃利县| 巫山县| 循化| 肥东县| 三明市| 丁青县| 黄梅县| 清新县| 青海省| 临高县| 类乌齐县| 灌云县| 张家港市| 罗甸县| 闻喜县| 合山市| 曲沃县| 澎湖县| 星子县| 霍山县| 自治县| 平安县| 乐昌市| 北川| 商洛市| 乌拉特前旗| 合江县| 肥西县| 阳谷县| 天门市| 通海县| 怀来县| 普格县| 桑日县| 五台县|