java代码操作mongodb(数据查询)

  1. java代码操作mongodb(数据查询–查询行程)
   public List getDetailTravel(String vin, String starTime) throws ParseException {
        if (StringUtils.isNotBlank(vin)) {
            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
            Query query = new Query();                                                          
            Criteria criteria = new Criteria();
            criteria.and("vin").is(vin).and("status").is("STOP");   //status 固定写死的字段(根据需求)
            if (!StringUtils.isEmpty(starTime)) {
                Date date = simpleDateFormat.parse(starTime);
                Long ts = date.getTime();
                Long second = ts + 86400000;   //86400000 一天时间的毫秒值    ts 结束时间
                criteria.and("startTime").gte(ts);
                criteria.and("endTime").lte(second);
                query.addCriteria(criteria);
                query.with(new Sort(Sort.Direction.DESC, "startTime"));
                List list = mongoTemplate.find(query, TravelRecordDto.class, "travelRecord");
                return list;
            }
            query.addCriteria(criteria);
            query.skip(0);// 从那条记录开始
            query.limit(1);// 取多少条记录
            query.with(new Sort(Sort.Direction.DESC, "startTime"));
            return mongoTemplate.find(query, TravelRecordDto.class, "travelRecord");    //travelRecord 表名
        }
        return Collections.EMPTY_LIST;
    }

2.mongo中的具体库:srm-driving

在这里插入图片描述

3.mongo中的具体表:travelRecord
java代码操作mongodb(数据查询)_第1张图片
4.service层注入MongoTemplate模板(运用模板进行查询)

   @Resource(name = "drivingMongoTemp")
    private MongoTemplate mongoTemplate;

5.springBoot启动类中注入bean

public class SRMVehicleApplication {

public static void main(String[] args) {
    SpringApplication.run(SRMVehicleApplication.class, args);
}
@Bean(name = "drivingMongoTemp")
public MongoTemplate drivingMongoTemp(MongoClient mongo) {
    return new MongoTemplate(mongo, "srm-driving");
}

}

6.实体对象(封装查询到的数据,进行返回)

/**
 * 行驶记录DTO
 */
@SuppressWarnings("all")
@Data
public class TravelRecordDto implements Serializable{

    /**
     * 32位UUID
     */
    private String id;

    /**
     * 车架号
     */
    private String vin;

    /**
     * 行程开始时间
     */
    private Long startTime;

    /**
     * 行程结束时间
     */
    private Long endTime;

    /**
     * 该段行程驾驶时长
     */
    private Double drivingTime;

    /**
     * 开始时累计里程
     */
    private Double startMileage;

    /**
     * 结束时累计里程
     */
    private Double endMileage;

    /**
     * 该段行程的行驶里程
     */
    private Double travelMileage;


    /**
     * 开始油量
     */
    private Double startOil;

    /**
     * 结束油量
     */
    private Double endOil;

    /**
     * 该段行程使用的油量
     */
    private Double travelOil;

    /**
     * 行程开始经度
     */
    private Double startLongitude;

    /**
     * 行程开始纬度
     */
    private Double endLongitude;

    /**
     * 行程结束经度
     */
    private Double startLatitude;

    /**
     * 行程结束纬度
     */
    private Double endLatitude;

    /**
     * 创建时间
     */
    private Long createdTime;

    /**
     * 修改时间
     */
    private Long updatedTime;

    /**
     * 该条消息记录延迟消费的时间
     */
    private Long delayTime;

    /**
     * 行驶记录的状态标记
     */
    private String status;

    /**
     * 省级区域ID
     */
    private Long provinceId;

    /**
     * 省级区域名称
     */
    private String provinceName;

    /**
     * 城市ID
     */
    private Long cityId;

    /**
     * 城市名称
     */
    private String cityName;

    /**
     * 超速报警次数
     */
    private Integer speedLimitAlarmNum;

    /**
     * 疲劳驾驶报警次数
     */
    private Integer fatigueDrivingNum;

    /**
     * 危险超车次数
     */
    private Integer overtakingDangerouslyNum;

    /**
     * 骑线行驶次数
     */
    private Integer rideLineDriveNum;

    /**
     * 超车次数
     */
    private Integer overtakingNum;

    /**
     * 急转弯次数
     */
    private Integer sharpTurnNum;

    /**
     * 急加速次数
     */
    private Integer sharpSpeedUpNum;

    /**
     * 急减速次数
     */
    private Integer sharpSpeedDownNum;

    /**
     * 行驶评分 参考计算规则
     */
    private Integer travelScore;
}

你可能感兴趣的:(mongodb)