2015-11-04 41 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.....");