mongodb要查前几天的数据怎么查呢?
比如说要查今天的数据,明天的数据,前天的数据这种。
通常来说,我们会支持查询前N天的数据,比如说运动数据,健康数据之类的。
我们可以先找到一个定点开始时间,今天的凌晨。
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
String format = simpleDateFormat.format(new Date());
log.info("format==> {}", format);
Timestamp timestamp = Timestamp.valueOf(format + " 00:00:00");
long time = timestamp.getTime();
log.info("time ==> " + time);
前N天的计算
day=0为今天,day=1为前一天。为什么没有明天呢?因为明天还没有到来,没有明天的数据。
long startTime = time - day * 1000 * 3600 * 24;
long endTime = startTime + 1000 * 3600 * 24;
Query query = Query.query(new Criteria().andOperator(
Criteria.where("deviceId").is(deviceId),
Criteria.where("createTime").gt(startTime),
Criteria.where("createTime").lte(endTime)
));
这样就可以查了。