您好,登錄后才能下訂單哦!
本篇內容介紹了“MongoDB怎么刪除文檔”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
MongoDB中提供了三種刪除文檔的方式,如下:
刪除一個文檔:db.collection.deleteOne(filter, options)
刪除多個文檔:db.collection.deleteMany(filter, options)
刪除文檔:db.collection.remove(filter, options)
下面我們對三種方式分別進行介紹:
語法:db.collection.deleteOne(filter, options)
如果有多個匹配的文檔,也只會刪除一個文檔。
例子:
查詢所有的文檔:
{ "_id" : "1001", "name" : "張三2", "fruits" : [ "apple", "orange" ], "updateTime" : ISODate("2023-04-06T02:36:00.703Z") } { "_id" : "1002", "name" : "李四", "fruits" : [ "banana", "apple" ] } { "_id" : "1003", "name" : "王五", "fruits" : [ "banana", "apple", "orange" ] } { "_id" : "1004", "commet" : "我的內容被替換了" } { "_id" : "1005", "name" : "田七", "score" : 100, "fruits" : [ "banana" ] }
下面我們刪除fruits中包含apple的文檔:
db.test.deleteOne({ "fruits": "apple" })
執行后我們再查詢所有的文檔:
{ "_id" : "1002", "name" : "李四", "fruits" : [ "banana", "apple" ] } { "_id" : "1003", "name" : "王五", "fruits" : [ "banana", "apple", "orange" ] } { "_id" : "1004", "commet" : "我的內容被替換了" } { "_id" : "1005", "name" : "田七", "score" : 100, "fruits" : [ "banana" ] }
發現只有包含apple的文檔中,只有一個文檔被刪除了。
語法:db.collection.deleteMany(filter, options)
刪除所有匹配的文檔
例子:
下面我們刪除fruits中包含apple的文檔:
db.test.deleteMany({ "fruits": "apple" })
執行后我們再查詢所有的文檔:
{ "_id" : "1004", "commet" : "我的內容被替換了" } { "_id" : "1005", "name" : "田七", "score" : 100, "fruits" : [ "banana" ] }
發現包含apple的文檔全部都被刪除了。
語法:db.collection.remove(filter, options)
options 中提供了一個 justOne 參數用于控制刪除一個匹配的文檔還是刪除所有匹配的文檔。
justOne 默認值為false,會刪除所有匹配的文檔
設置成true, 會刪除匹配的一個文檔。
例子:
我們嘗試刪除所有的文檔:
db.test.remove({ })
執行后我們再查詢所有的文檔,會發現文檔不存在,說明了 justOne 的默認值為false.
我們再插入兩條數據:
db.test.insertMany( [ { "id": "1002", "name": "李四", "age": 22 }, { "id": "1003", "name": "王五", "age": 25 } ] );
我們再嘗試刪除所有的文檔,不過這次加上justOne: true的參數:
db.test.remove({ }, { "justOne": true })
執行后我們再查詢所有的文檔:
{ "_id" : ObjectId("642f85506ca9e7fe3a3ff6f7"), "id" : "1003", "name" : "王五", "age" : 25 }
從上面的文檔結果來看,justOne: true 參數下只會刪除一條匹配的文檔。
“MongoDB怎么刪除文檔”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。