概述
删除文档的主要方法
db.collection.deleteOne()
#New in version 3.2.
db.collection.deleteMany()
#New in version 3.2.
db.collection.remove()
数据准备
db.inventory.insertMany( [
{ item: "journal", qty: 25, size: { h: 14, w: 21, uom: "cm" }, status: "A" },
{ item: "notebook", qty: 50, size: { h: 8.5, w: 11, uom: "in" }, status: "P" },
{ item: "paper", qty: 100, size: { h: 8.5, w: 11, uom: "in" }, status: "D" },
{ item: "planner", qty: 75, size: { h: 22.85, w: 30, uom: "cm" }, status: "D" },
{ item: "postcard", qty: 45, size: { h: 10, w: 15.25, uom: "cm" }, status: "A" },
] );
1、deleteMany()
db.collection.deleteMany(
<filter>,
{
writeConcern: <document>,
collation: <document>
}
)
- writeConcern :可选,写关注。
- collation:指定用于操作的排序规则。归类允许用户为字符串比较指定特定于语言的规则,例如字母大写和重音符号的规则。
1.1、删除所有文档
db.inventory.deleteMany({})
1.2、删除所有符合条件的文档
db.inventory.deleteMany({ status : "A" })
2、deleteOne()
db.inventory.deleteOne( { status: "D" } )
3、remove()
MongoDB remove()函数是用来移除集合中的数据。
在执行remove()函数前先执行find()命令来判断执行的条件是否正确,这是一个比较好的习惯。
语法如下:
db.collection.remove(
<query>,
{
justOne: <boolean>,
writeConcern: <document>
}
)
参数说明:
- query :(可选)删除的文档的条件。
- justOne : (可选)如果设为 true 或 1,则只删除一个文档。
- writeConcern :(可选)抛出异常的级别。
> db.col.find()
{ "_id" : ObjectId("56066169ade2f21f36b03137"), "title" : "MongoDB 教程", "description" : "MongoDB 是一个 Nosql 数据库", "by" : "MongoDB中文网", "url" : "http://www.mongodb.org.cn", "tags" : [ "mongodb", "database", "NoSQL" ], "likes" : 100 }
{ "_id" : ObjectId("5606616dade2f21f36b03138"), "title" : "MongoDB 教程", "description" : "MongoDB 是一个 Nosql 数据库", "by" : "MongoDB中文网", "url" : "http://www.mongodb.org.cn", "tags" : [ "mongodb", "database", "NoSQL" ], "likes" : 100 }
>db.col.remove({'title':'MongoDB 教程'})
WriteResult({ "nRemoved" : 2 })
# 删除了两条数据
>db.col.find()
# 没有数据
如果你只想删除第一条找到的记录可以设置 justOne 为 1,如下所示:
mongos> db.test.remove({},{justOne:1})
WriteResult({ "nRemoved" : 1 })
如果你想删除所有数据,可以使用以下方式(类似常规 SQL 的 truncate 命令):
>db.col.remove({})