MongoDB 删除文档

在本章中,我们将学习如何使用MongoDB删除文档。

remove()方法

MongoDB的remove()方法用于从集合中删除文档。remove()方法接受两个参数。第一个是删除条件 query,第二个是justOne标志。

  • query ?(可选)删除的文档的条件。

  • justOne ?(可选)如果设置为true或1,则仅删除一个文档。

语法

remove()方法的基本语法如下-

db.collection.remove(
   <query>,
   <justOne>
)

如果你的 MongoDB 是 2.6 版本以后的,语法格式如下:

db.collection.remove(   <query>,
   {
     justOne: <boolean>,
     writeConcern: <document>
   }
)

参数说明:

  • query :(可选)删除的文档的条件。

  • justOne : (可选)如果设为 true 或 1,则只删除一个文档,如果不设置该参数,或使用默认值 false,则删除所有匹配条件的文档。

  • writeConcern :(可选)抛出异常的级别。

示例

假设到mycol集合具有以下数据。

{_id : ObjectId("507f191e810c19729de860e1"), title: "MongoDB Overview"},
{_id : ObjectId("507f191e810c19729de860e2"), title: "NoSQL Overview"},
{_id : ObjectId("507f191e810c19729de860e3"), title: "NHOOO Overview"}

以下示例将删除标题为“ MongoDB概述”的所有文档。

>db.mycol.remove({'title':'MongoDB Overview'})
WriteResult({"nRemoved" : 1})
> db.mycol.find()
{"_id" : ObjectId("507f191e810c19729de860e2"), "title" : "NoSQL Overview" }
{"_id" : ObjectId("507f191e810c19729de860e3"), "title" : "NHOOO Overview" }

仅删除一个文档

如果有多个记录,而您只想删除第一个记录,则justOneremove()method中设置参数。

>db.COLLECTION_NAME.remove(DELETION_CRITERIA,1)

删除所有文档

如果您未指定删除条件,则MongoDB将从集合中删除整个文档。这等效于SQL的truncate命令。

> db.mycol.remove({})
WriteResult({ "nRemoved" : 2 })
> db.mycol.find()
>