java mongo $where

来源:互联网 发布:vba和vb的区别 编辑:程序博客网 时间:2024/06/08 00:45
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()


@Testpublic 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));}


原创粉丝点击