如何使用java删除mongodb中的多个文档

时间:2015-11-04 21:31:48

标签: java mongodb

我有一个java程序,它根据特定的日期条件查找文档并删除所有这些文档。一旦找到,我不确定如何删除这些文件。当我使用以下命令查询MongoDB数据库时,它会向我显示2706个文档。

MongoDB版本:3.0

Mongo-Java驱动程序版本:3.1.0

Mongo Shell命令:

db.jobs.find({"startTime" : { $gte : "2015-11-04 00:00:00"}}).count();
Output: 2706

我有以下java程序,它或多或少类似于上面的命令。

Java代码:

MongoDatabase database = DataSourceFactory.getDatabase(DatabaseType.MONGODB.name());
MongoCollection<Document> collection = database.getCollection("jobs");
//find and delete existing documents first
String currentDate = GenericUtils.getCurrentDate() + " 00:00:00";
Document doc = collection.findOneAndDelete(gte("startTime", currentDate));

我不确定是否可以使用findOneAndDelete()方法。我是否必须编写一个执行此操作的循环?有没有办法在一次搜索中找到并删除所有记录?

不确定如何删除所有记录并计算已删除的记录数。

我用谷歌搜索并找到了一些在线教程,但其中大多数是基于旧版2.1, 2.2等。

请指导。

1 个答案:

答案 0 :(得分:1)

找到它。

deleteMany()方法可用于一次性查找和删除文档。

DeleteResult deleteResult = collection.deleteMany(gte("startTime", currentDate));
LOG.debug(deleteResult.getDeletedCount() + " document(s) deleted.....");