概述
你能用驱动包中提供的deleteOne或者deleteMany方法来删除集合里的文档。这些方法需要传入一个条件文档参数,以确定删除哪个文档。
为了明确删除条件,我们跟查询一样用相同的语法和结构。更多查询的相关内容,请移步到[Find or Query Data with Java Driver。
前提
该部分仍然使用test数据库中的restaurant集合。关于如何导入数据集,请移步到[Import Example Dataset。
紧接着 连接数据库后的操作,我们运行MongoDB实例,并声明db变量来连接test数据库。
操作需要导入下面的包:
import org.bson.Document;
步骤
删除匹配条件的所有文档
下面的操作会删除匹配条件的所有文档
db.getCollection("restaurants").deleteMany(
new Document("borough", "Manhattan"));
deleteMany方法会返回一个包含操作信息的DeleteResult类。该类里的getDeletedCount方法会返回被删除的文档数目。
删除一个集合
删除所有操作仅从文档中删除文档,集合本身以及集合的索引仍然保留着。为了从一个集合中删除所有文档,更有效的方法是移除整个集合包括它的索引,然后再重新建一个同名的集合和索引。利用drop方法能删除整个集合,包括索引:
db.getCollection("restaurants").drop();
其他
更多信息,请看官方文档Java版。 deleteOne, deleteMany 和drop.
在MongoDB里,在一个文档中的写操作是原子级别的。如果单个删除操作
删除了集合里的多个文档,该操作能掺入其他写操作在该集合中。在MongoDB文档中,请移步看Atomicity.
更多内容,看MongoDB官方文档。The MongoDB Manual