mongodb入门-10 删除

本文介绍了MongoDB中的删除操作,重点讲解了`remove`方法的使用。无参数调用将删除集合所有文档,带参数则按条件删除。在高并发场景下,可以使用`$atomic`参数确保安全删除,但实际效果需要进一步测试验证。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

mongodb的查询基本结束了,算是增删改查完成了一半了,该介绍删除了.

在mongodb中删除还是比较简单的,只有一个remove方法.remove方法如果不加参数将会删除集合中所有的文档.如果添加参数只会删除满足条件的文档.这里的参数基本跟我们在查询中介绍的一样.下面看一段代码介绍:

> db.test.find()
{ "_id" : 1, "name" : "user_1", "age" : 1 }
{ "_id" : 2, "name" : "user_2", "age" : 2 }
{ "_id" : 3, "name" : "user_3", "age" : 3 }
{ "_id" : 4, "name" : "user_4", "age" : 4 }
{ "_id" : 5, "name" : "user_5", "age" : 5 }
> db.test.remove({age:1}) -->删除age为1的文档
> db.test.find()
{ "_id" : 2, "name" : "user_2", "age" : 2 }
{ "_id" : 3, "name" : "user_3", "age" : 3 }
{ "_id" : 4, "name" : "user_4", "age" : 4 }
{ "_id" : 5, "name" : "user_5", "age" : 5 }
> db.test.remove({age:{$gte:4}}) -->删除age大于等于4的文档
> db.test.find()
{ "_id" : 2, "name" : "user_2", "age" : 2 }
{ "_id" : 3, "name" : "user_3", "age" : 3 }
> db.test.remove() -->无参数将删除该集合中的所有文档
> db.test.find() -->查找的时候 没有数据了
> db.test.find()

在高并发的时候,可能我们删除一个文档的时候,其它用户正在更新该文档,这样就不能删除这个文档,显然这个是不能满足我们的条件的.这时候我们可以在删除的方法中的参数中加上$atomic参数,并将其设置为true,这样就能实现删除了.这个方法由于本人只在本地不容易测试,所以不能确定是否能删除,只是文档中这么说的.测试代码如下:

> db.test.find();
{ "_id" : ObjectId("519a24e4008d26b3ff25dfe8"), "age" : 2 }
{ "_id" : ObjectId("519a25e6008d26b3ff25dfe9"), "age" : 1 }
> db.test.remove({age:1,$atomic:true})
> db.test.find();
{ "_id" : ObjectId("519a24e4008d26b3ff25dfe8"), "age" : 2 }

删除比较简单,主要我们学好了查询就能学号删除了.



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值