mongodb如何刪除數(shù)據(jù)

小晨
305
2021-07-05 08:03:55
欄目: 云計(jì)算

mongodb中刪除數(shù)據(jù)的方法:在mongodb中可以使用remove()和delete()方法函數(shù)來刪除集合中的文檔數(shù)據(jù),需要注意的是在執(zhí)行remove()方法函數(shù)前,最好先使用find()命令來查看是否正確;而delete方法分別有兩種函數(shù):deleteOne()和deleteMany()。

mongodb如何刪除數(shù)據(jù)

具體內(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è)文檔。

0