db.tsdataBak1710.find({
"lastUpdateTime" :{"$gte": ISODate("2017-10-12T00:00:00.000+08:00"),"$lt": ISODate("2017-10-13T00:00:00.000+08:00")},
"lastEvent":"ScheduleChange",
"lastSubEvent":"UNTK",
"$where": "this.seg.opFlightNumber == this.asssegs[0].operatingCarrier.flightNumber",
}).count()
@Test
public void testCount() throws ParseException {
String startDate = "2017-10-1";// 开始时间
String endDate = "2017-10-31";// 结束时间
String collection = "tsdataBak1710";// 集合名字
Date date1 = sdf.parse(startDate);
Date date2 = sdf.parse(endDate);
Calendar calendar = Calendar.getInstance();
calendar.setTime(date1);
long allCount = 0;
long startTime = System.currentTimeMillis();
while (!calendar.getTime().equals(date2)) {
Date dateS1 = calendar.getTime();
calendar.add(Calendar.DATE, 1);
Date dateE1 = calendar.getTime();
DBObject queryObject = (DBObject) JSON.parse("{}");
queryObject.put("$where", "this.seg.opFlightNumber == this.asssegs[0].operatingCarrier.flightNumber");
BasicQuery query = new BasicQuery(queryObject);
query.addCriteria(Criteria.where("lastUpdateTime").gte(dateS1).lt(dateE1));
query.addCriteria(Criteria.where("lastEvent").is("ScheduleChange"));
query.addCriteria(Criteria.where("lastSubEvent").is("UNTK"));
long count = mongoTemplate.count(query, Tsdata.class, collection);
allCount += count;
System.out.println(sdf.format(dateS1.getTime()) + "\t" + sdf.format(dateE1.getTime()) + "\tcount:" + count);
}
long endTime = System.currentTimeMillis();
System.out.println("allCount=" + allCount);
System.out.println("costTime=" + (endTime - startTime));
}