新聞中心
隨著互聯(lián)網(wǎng)的迅猛發(fā)展,針對(duì)大規(guī)模數(shù)據(jù)的存儲(chǔ)和處理需求,數(shù)據(jù)庫(kù)系統(tǒng)成為了不可或缺的工具。MongoDB作為新一代文檔數(shù)據(jù)庫(kù),以良好的可擴(kuò)展性和高效性,在市場(chǎng)上得到了廣泛的應(yīng)用。然而,隨著數(shù)據(jù)庫(kù)中數(shù)據(jù)量的增加,清理和刪除不再需要的數(shù)據(jù)變得尤為重要。本文將詳細(xì)介紹在MongoDB中如何輕松刪除數(shù)據(jù)庫(kù),讓你的數(shù)據(jù)變得更加干凈。

一、MongoDB中數(shù)據(jù)庫(kù)的刪除
在MongoDB中刪除數(shù)據(jù)庫(kù)十分簡(jiǎn)單,只需在命令行中輸入以下命令即可:
“`
db.dropDatabase()
“`
然而,在運(yùn)行該命令前,請(qǐng)務(wù)必確認(rèn)已備份該數(shù)據(jù)庫(kù)中的所有數(shù)據(jù),以免不可挽回地造成數(shù)據(jù)丟失。
除了在命令行中刪除數(shù)據(jù)庫(kù)外,MongoDB還提供了兩種方式來(lái)刪除數(shù)據(jù)庫(kù):
1.使用MongoDB Compass刪除數(shù)據(jù)庫(kù)
MongoDB Compass是MongoDB官方推出的圖形化管理工具,可供用戶快速可視化地管理MongoDB數(shù)據(jù)庫(kù)。在使用MongoDB Compass刪除數(shù)據(jù)庫(kù)時(shí),我們只需選擇目標(biāo)數(shù)據(jù)庫(kù),點(diǎn)擊鼠標(biāo)右鍵,在彈出菜單中選擇“Drop Database”便可輕松刪除數(shù)據(jù)庫(kù)。
2.使用第三方插件mongocli刪除數(shù)據(jù)庫(kù)
mongocli是MongoDB官方推出的命令行客戶端,使用mongocli用戶可以更加高效地執(zhí)行MongoDB信息操作。在使用mongocli刪除數(shù)據(jù)庫(kù)時(shí),我們只需在命令行中輸入以下命令:
“`
mongocli atlas database delete
“`
其中,“即為目標(biāo)數(shù)據(jù)庫(kù)的名稱(chēng)。
二、MongoDB中的刪除
MongoDB中的是指相同類(lèi)型文檔的,相當(dāng)于傳統(tǒng)數(shù)據(jù)庫(kù)中的表。在MongoDB中刪除同樣也十分簡(jiǎn)單,只需在命令行中輸入以下命令即可:
“`
db..drop()
“`
其中,“即為目標(biāo)的名稱(chēng)。
除了在命令行中刪除外,MongoDB還提供了兩種方式來(lái)刪除:
1.使用MongoDB Compass刪除
在MongoDB Compass中,我們只需選擇目標(biāo),點(diǎn)擊鼠標(biāo)右鍵,在彈出菜單中選擇“Drop Collection”便可輕松刪除。
2.使用第三方插件mongocli刪除
在使用mongocli刪除時(shí),我們只需在命令行中輸入以下命令:
“`
mongocli atlas collection delete –databaseName=
“`
其中,“即為目標(biāo)的名稱(chēng),“即為目標(biāo)所在的數(shù)據(jù)庫(kù)的名稱(chēng)。
三、MongoDB中條件刪除
MongoDB還可以根據(jù)特定條件來(lái)刪除中的文檔。在MongoDB中,我們可以使用deleteOne()和deleteMany()方法來(lái)刪除指定條件的文檔。
1.deleteOne()
deleteOne()方法用于刪除滿足指定條件的單個(gè)文檔。例如,我們有一個(gè)名為users的,其中包含如下3個(gè)文檔:
“`
{ _id: 1, name: “Jack”, age: 22 }
{ _id: 2, name: “Lucy”, age: 22 }
{ _id: 3, name: “Mike”, age: 23 }
“`
我們希望刪除年齡為22歲的Lucy的文檔,只需在命令行中輸入以下命令即可:
“`
db.users.deleteOne({name: “Lucy”, age: 22})
“`
此時(shí),MongoDB將會(huì)刪除維護(hù)在users中輸入條件滿足的唯一文檔,即{ _id: 2, name: “Lucy”, age: 22 }。
2.deleteMany()
deleteMany()方法用于刪除滿足指定條件的所有文檔。例如,我們?nèi)砸評(píng)sers為例:
“`
{ _id: 1, name: “Jack”, age: 22 }
{ _id: 2, name: “Lucy”, age: 22 }
{ _id: 3, name: “Mike”, age: 23 }
“`
我們希望刪除所有年齡為22歲的文檔,只需在命令行中輸入以下命令即可:
“`
db.users.deleteMany({age: 22})
“`
此時(shí),MongoDB將會(huì)刪除維護(hù)在users中輸入條件滿足的所有文檔,即{ _id: 1, name: “Jack”, age: 22 }和{ _id: 2, name: “Lucy”, age: 22 }。
四、小結(jié)
成都網(wǎng)站建設(shè)公司-創(chuàng)新互聯(lián)為您提供網(wǎng)站建設(shè)、網(wǎng)站制作、網(wǎng)頁(yè)設(shè)計(jì)及定制高端網(wǎng)站建設(shè)服務(wù)!
mongodb 刪除后為什么不釋放空間
比較慢的方法:可以嘗試給這個(gè)數(shù)據(jù)庫(kù)增加一個(gè) replica-set,枯鄭等新加的結(jié)點(diǎn)和老數(shù)據(jù)同步了之后就可以停掉老數(shù)據(jù)庫(kù)并刪除老數(shù)據(jù),以新結(jié)點(diǎn)對(duì)外提供服務(wù),此時(shí)數(shù)據(jù)庫(kù)空間應(yīng)該已經(jīng)整理好并壓縮到最小了。這個(gè)過(guò)程自己并不可控,200 GB 的話要同步多久無(wú)法預(yù)估,但是不會(huì)太影響 mongodb 繼續(xù)喊判提供服務(wù)。
比較快的方法:用 mongodump/mongoexport 導(dǎo)出所有數(shù)據(jù),可以遠(yuǎn)程導(dǎo)出,倒完之后再用 mongorestore/mongoimport
恢復(fù)數(shù)據(jù)
。這個(gè)操作會(huì)導(dǎo)致 mongodb 鎖數(shù)據(jù)庫(kù),無(wú)法對(duì)外提供服務(wù),如果鎖了也無(wú)所謂可以用這個(gè)方法,200 GB 說(shuō)不定需要小半天的時(shí)間,得自己估量一下。
另外沒(méi)滲頌,db.repairDatabase() 效果很有限,且會(huì)導(dǎo)致長(zhǎng)時(shí)間鎖數(shù)據(jù)庫(kù),不用為好。mongodb 解決磁盤(pán)問(wèn)題比較好的方法是用 auto-sharding 將數(shù)據(jù)分?jǐn)偟蕉嗯_(tái)機(jī)器上,不過(guò)這個(gè)事情得提前計(jì)劃好,一旦數(shù)據(jù)庫(kù)已經(jīng)非常大了,能做的事情就很少了。
原因是mongodb設(shè)計(jì)的本身機(jī)制問(wèn)題造成的。
首先,mongodb在創(chuàng)建數(shù)據(jù)文件時(shí),會(huì)根據(jù)64M,128M,256M…遞增的方式產(chǎn)生數(shù)據(jù)文件,更大數(shù)據(jù)文件為2G,增大到2G之后,后面新增的數(shù)據(jù)文件都占用2G空間。
當(dāng)刪除某一個(gè)表的數(shù)據(jù)時(shí),mongodb會(huì)標(biāo)記你刪除該表所在數(shù)據(jù)文念或件位置為:該部分的數(shù)據(jù)已經(jīng)刪除,但是不會(huì)釋放該數(shù)據(jù)文件櫻高桐所占用的空間,當(dāng)有新的數(shù)據(jù)進(jìn)來(lái)之后,會(huì)將數(shù)據(jù)分配到該數(shù)據(jù)文件中。
一方面是:刪除文件后不產(chǎn)生多余的數(shù)據(jù)碎片,
另一方面不做數(shù)據(jù)的大規(guī)模遷移,減少mongodb內(nèi)部的IO操作。
所以在刪除數(shù)據(jù)表之后,會(huì)發(fā)現(xiàn)系統(tǒng)空間并沒(méi)有釋放,從mongodb本身看,空間已經(jīng)釋放了,被刪除數(shù)據(jù)的空間依然可用;
但從系統(tǒng)角度看,空間沒(méi)有釋放,并不會(huì)影響數(shù)據(jù)的脊坦存儲(chǔ)。
關(guān)于mongo 刪除.數(shù)據(jù)庫(kù)的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
四川成都云服務(wù)器租用托管【創(chuàng)新互聯(lián)】提供各地服務(wù)器租用,電信服務(wù)器托管、移動(dòng)服務(wù)器托管、聯(lián)通服務(wù)器托管,云服務(wù)器虛擬主機(jī)租用。成都機(jī)房托管咨詢(xún):13518219792
創(chuàng)新互聯(lián)(www.cdcxhl.com)擁有10多年的服務(wù)器租用、服務(wù)器托管、云服務(wù)器、虛擬主機(jī)、網(wǎng)站系統(tǒng)開(kāi)發(fā)經(jīng)驗(yàn)、開(kāi)啟建站+互聯(lián)網(wǎng)銷(xiāo)售服務(wù),與企業(yè)客戶共同成長(zhǎng),共創(chuàng)價(jià)值。
文章標(biāo)題:輕松刪除Mongo數(shù)據(jù)庫(kù),讓你的數(shù)據(jù)更干凈(mongo刪除.數(shù)據(jù)庫(kù))
網(wǎng)頁(yè)網(wǎng)址:http://m.fisionsoft.com.cn/article/cosspop.html


咨詢(xún)
建站咨詢(xún)
