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