mongodb中刪除數(shù)據(jù)的方法:在mongodb中可以使用remove()和delete()方法函數(shù)來刪除集合中的文檔數(shù)據(jù),需要注意的是在執(zhí)行remove()方法函數(shù)前,最好先使用find()命令來查看是否正確;而delete方法分別有兩種函數(shù):deleteOne()和deleteMany()。
具體內(nèi)容如下:
remove() 方法
如果不再需要 MongoDB 中存儲(chǔ)的文檔,可以通過刪除命令將其永久刪除。刪除 MongoDB 集合中的數(shù)據(jù)可以使用 remove() 函數(shù)。
remove() 函數(shù)可以接受一個(gè)查詢文檔作為可選參數(shù)來有選擇性地刪除符合條件的文檔。刪除文檔是永久性的,不能撤銷,也不能恢復(fù)。因此,在執(zhí)行 remove() 函數(shù)前最好先用 find() 命令來查看是否正確。
remove() 方法的基本語法格式如下所示:
db.collection.remove(<query>,
{
justOne: <boolean>, writeConcern: <document>
}
)
參數(shù)說明:
query:必選項(xiàng),是設(shè)置刪除的文檔的條件。
justOne:布爾型的可選項(xiàng),默認(rèn)為false,刪除符合條件的所有文檔,如果設(shè)為 true,則只刪除一個(gè)文檔。
writeConcem:可選項(xiàng),設(shè)置拋出異常的級(jí)別。
下面舉例說明刪除集合中的文檔,先進(jìn)行兩次插入操作,代碼如下:
>db.test.insert({
title : 'MongoDB',
description : 'MongoDB 是一個(gè) NoSQL 數(shù)據(jù)庫',
by : '億速云',
tags : ['mongodb', 'database', 'NoSQL'],
likes : 100
}
)
使用 find() 函數(shù)查詢的代碼如下:
> db.test.find(){ "_id" : Objectld ("5ba9d8b:L24857a5fefclfde6"), "titlen : "MongoDB", "description" : "MongoDB 是一個(gè) NoSQL 數(shù)據(jù)庫", "by" : "億速云", "tags" : [ "mongodb", "database", "NoSQL" ], "Tikes" : 100 }
{ "_id" : ObjectId("5ba9d90924857a5fefclfde7"), "title" : "MongoDB ", "description" : "MongoDB 是一個(gè) NoSQL 數(shù)據(jù)庫", "by" : "億速云", "tags" : [ "mongodb", "database", "NoSQL"], "likes" : 100 }
接下來移除 title 為“MongoDB”的文檔,執(zhí)行以下操作后,查詢會(huì)發(fā)現(xiàn)兩個(gè)文檔記錄均被刪除:
>db.test.remove({'title': 'MongoDB'})WriteResult({ 'nRemoved' : 2 }) #刪除了兩條數(shù)據(jù)
另外,可以設(shè)置比較條件,如下操作為刪除 price 大于 3 的文檔記錄:
>db.test.remove({
price:{$gt:3}
}
)
delete() 方法
官方推薦使用 deleteOne() 和 deleteMany() 方法刪除文檔,語法格式如下:
db.collection.deleteMany ({})db.collection.deleteMany ({ status : "A" })
db.collection.delete.One ({ status : "D" })
第一條語句刪除集合下所有的文檔,第二條語句刪除 status 等于 A 的全部文檔,第三條語句刪除 status 等于 D 的一個(gè)文檔。