MongoDB 删除文档

MongoDB remove()函数是用来移除集合中的文档。


>在执行remove()函数前先执行find()命令来判断执行的条件是否正确,这是一个比较好的习惯。

语法

基本语法remove()方法如下

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

参数说明:

  • query :(可选)删除的文档的条件。
  • justOne : (可选)如果设为 true 或 1,则只删除一个文档。默认false
  • writeConcern :(可选)抛出异常的级别。

例子

考虑以下数据mycol集合。

> db.myLimit.find().limit(5)
{ "_id" : 0 }
{ "_id" : 1 }
{ "_id" : 2 }
{ "_id" : 3 }
{ "_id" : 4 }

下面的例子将删除所有的文档,其 _id3

>db.col.remove({"_id" : 3})
WriteResult({ "nRemoved" : 1 })

> db.myLimit.find().limit(5)
{ "_id" : 0 }
{ "_id" : 1 }
{ "_id" : 2 }
{ "_id" : 4 }
{ "_id" : 5 }

删除一个

如果有多个记录且要删除的只有第一条记录,那么设置remove()方法中justOne参数设置1或者是true

>db.myLimit.remove({"_id" : {$gt:0}},1)
WriteResult({ "nRemoved" : 1 })

删除所有文档

如果不指定删除条件,然后MongoDB将从集合中删除整个文档。这相当于SQL的truncate命令。

> db.myLimit.remove({})
WriteResult({ "nRemoved" : 9998 })

remove命令一定要三思而后行!!

>db.myLimit.find()
>

删除文档 在 MongoDB remove() 和 SQL Delete 区别

SQL Delete Statements MongoDB remove() Statements
DELETE FROM users
WHERE status = "D"
db.users.remove( { status: "D" } )
DELETE FROM users
db.users.remove({})