十五、MongoDB 删除文档

本文介绍了MongoDB的remove()方法,用于从集合中删除数据。通过示例展示了如何删除特定条件的文档,包括删除单个文档和全部文档,并提到了在执行删除操作前进行find()查询以确认条件的重要性。此外,还提及了2.6版本后的语法变化,包括writeConcern参数。
摘要由CSDN通过智能技术生成

MongoDB remove() 方法是用来删除集合中的数据

在前面一章节中我们学习了如何向文档中插入数据,现在我们来学习如何在删除 MongoDB 集合

remove() 方法

MongoDB remove() 方法是用来删除集合中的数据

语法

remove() 方法语法格式如下

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

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

参数说明

参数说明
query必选。删除的文档的条件
justOne可选。如果设为 true 或 1,则只删除一个文档

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

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

参数说明

参数说明
query可选。删除的文档的条件
justOne可选。如果设为 true 或 1,则只删除一个文档
writeConcern可选。抛出异常的级别

范例

首先我们执行 insert() 方法 3 次插入 3 条数据

> db.lession.insert({title: 'MongoDB 基础教程', 
  by: 'penglei',
  favorite: 1000000
})
WriteResult({ "nInserted" : 1 })
> db.lession.insert({title: 'MongoDB 基础教程', 
  by: 'penglei',
  favorite: 1000000
})
WriteResult({ "nInserted" : 1 })
> db.lession.insert({title: 'MongoDB 基础教程', 
...   by: 'penglei',
...   favorite: 1000000
... })
WriteResult({ "nInserted" : 1 })

接着使用 find() 函数查询数据

> db.lession.find().pretty()
{
  "_id" : ObjectId("59edadf7c3ba87608db0fe4e"),
  "title" : "MongoDB 基础教程",
  "by" : "penglei",
  "favorite" : 1000000
}
{
  "_id" : ObjectId("59edadf8c3ba87608db0fe4f"),
  "title" : "MongoDB 基础教程",
  "by" : "penglei",
  "favorite" : 1000000
}
{
  "_id" : ObjectId("59edae8ac3ba87608db0fe50"),
  "title" : "MongoDB 基础教程",
  "by" : "penglei",
  "favorite" : 1000000
}
> 

现在我们来移除 一 条 by 为 ‘penglei’ 的文档,需要设置 justOne 为 1

> db.lession.remove({'by':'penglei'},true)
WriteResult({ "nRemoved" : 1 })  # 删除了 1 条数据,还剩下两条
> db.lession.find()
{ "_id" : ObjectId("59edadf8c3ba87608db0fe4f"), "title" : "MongoDB 基础教程", "by" : "penglei", "favorite" : 1000000 }
{ "_id" : ObjectId("59edae8ac3ba87608db0fe50"), "title" : "MongoDB 基础教程", "by" : "penglei", "favorite" : 1000000 }

接下来我们删除剩下的两条

> db.lession.remove({'by':'penglei'})
WriteResult({ "nRemoved" : 2 })  # 删除了两条 
> db.lession.find()  # 数据库空了
> 

如果想删除所有数据,可以使用以下方式

> db.lession.remove({})
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值