2015-11-04 83 views
1

我有一个java程序,它可以根据某个日期条件查找文档并将其全部删除。我不知道如何删除这些文件一旦找到。当我使用以下命令查询MongoDB数据库时,它显示我2706文件存在。如何使用java删除mongodb中的多个文档

MongoDB的版本:3.0

蒙戈-Java驱动程序版本:3.1.0

蒙戈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()方法的用法是要走的路。我是否必须编写一个这样的循环?有没有办法在一次拍摄中找到并删除所有记录?

不知道如何删除所有记录,并得到多少被删除的计数。

我用Google搜索,发现了一些在线教程,但其中大部分是基于旧版本2.1, 2.2

请指导。

回答

1

找到它。

deleteMany()方法可用于查找和删除单个文件。

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