/**
* Mongo中要處理的數據量比較多時,可以進行分批量處理
* 使用MongoTemplate分批進行處理數據
* skip(num).limit(10000) 跳過num條數據后,取10000條數據
*/
public static void main(String[] args) {
//查詢所有有效的記錄
int total = (int) mongoTemplate.count(query(where("deletedFlag").is(false)),User.class, "user");
//按照10000條數據一個批次,進行分批次
int size = total/10000;
int number= total%10000;
//余數不為0,剩下的記錄做為一個批次
if(number!=0){
size = size+1;
}
for(int i = 0;i<size;i++){
int num = (i*10000);
List<User> users= mongoTemplate.find(query(where("deletedFlag").is(false)).skip(num).limit(10000), User.class, "user");
for(User user : users ){
//對每條記錄進行數據操作
}
}
}
