MongoDB 删除文档

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


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

语法

基本语法remove()方法如下

  1. db.collection.remove(
  2. <query>,
  3. {
  4. justOne: <boolean>,
  5. writeConcern: <document>
  6. }
  7. )

参数说明:

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

例子

考虑以下数据mycol集合。

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

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

  1. >db.col.remove({"_id" : 3})
  2. WriteResult({ "nRemoved" : 1 })
  3. > db.myLimit.find().limit(5)
  4. { "_id" : 0 }
  5. { "_id" : 1 }
  6. { "_id" : 2 }
  7. { "_id" : 4 }
  8. { "_id" : 5 }

删除一个

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

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

删除所有文档

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

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

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

  1. >db.myLimit.find()
  2. >

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

SQL Delete StatementsMongoDB remove() Statements
  1. DELETE FROM usersWHERE status = "D"
  1. db.users.remove( { status: "D" } )
  1. DELETE FROM users
  1. db.users.remove({})