使用remove()
方法从collection
中删除document
。在此方法中指定一个条件以此来决定要删除的文档。
删除所需条件的结构和语法和查询的一样。不熟悉的可以看看Find or Query Data with the mongo Shell
本节的例子使用test
数据库中名为restaurants
的集合。关于向集合中填充样本数据的说明,请看导入示例数据
在mongo shell
中连接已运行的mongod
实例,并切换到test
数据库
use test
下面的操作将会删除符合指定条件的所有文档。
db.restaurants.remove( { "borough": "Manhattan" } )
删除操作返回一个包含操作状态的 WriteResult
对象。nRemoved
字段指定了被删除文档的数目。
Use the justOne Option
默认情况下,remove()
方法会删除符合条件的所有文档。使用 justOne
选项可以限制删除操作,使其仅仅删除一个符合删除条件的文档。
db.restaurants.remove( { "borough": "Queens" }, { justOne: true } )
成功的操作应返回像下面这样的 WriteResult 对象!
WriteResult({ "nRemoved" : 1 })
在这种情况下,nRemoved
字段指定被删除的文档数目。
要想删除集合中所有文档,只需传递给 remove()
方法一个空的文档{}
作为条件即可。
db.restaurants.remove( { } )
此删除操作返回一个包含操作状态的 WriteResult 对象。nRemoved 字段指定了被删除文档的数目。
上面的操作仅仅删除了集合中的全部文档。集合本身和关于集合的索引依然存在。相对于删除集合中的所有文档来说,更有效率的也许是删除整个集合以及索引后重建集合和索引。
db.restaurants.drop()
上面的操作成功后将会返回true
。
true
如果要删除的集合不存在,此操作将会返回false
。
在 MongoDB
手册中,查看 remove()
和 drop()
MongoDB
中,单个文档上的 write
是原子操作。如果单个删除操作要删除集合中的多个文档,那么此操作可以和其他 write
操作一起使用。在 MongoDB
手册中查看 Atomicity