mongodb入门-10删除
mongodb入门-9查询4
http://www.2cto.com/database/201305/212201.
html
mongodb的查询基本结束了,算是增删改查完成了一半了,该介绍删除了.
在mongodb中删除还是比较简单的,只有一个remove方法.remove方法如果不加参数将会删除集合中所有的文档.如果添加参数只会删除满足条件的文档.这里的参数基本跟我们在查询中介绍的一样.下面看一段代码介绍:
[html]
> 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,这样就能实现删除了.这个方法由于本人只在本地不容易测试,所以不能确定是否能删除,只是文档中这么说的.测试代码如下:
[html]
> 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 }
删除比较简单,主要我们学好了查询就能学号删除了.
转载自:http://www.2cto.com/database/201305/213134.html