Spring data mongodb ObjectId ,根据id日期条件查询,省略@CreatedDate注解

先看看ObjectId 的json 结构,非常丰富,这里有唯一机器码,日期,时间戳等等,所以强烈建议ID 使用 ObjectId 类型,并且自带索引

 Spring data mongodb 注解 @CreatedDate 可以记录创建时间,但是有了那么强大的ID ,我们还需要这个吗?

ObjectId 有一个构造方法

  public ObjectId(Date time) {
        this(time, _genmachine, _nextInc.getAndIncrement());
    }

使用Dto 实体根据创建日期范围查询,亲测有效

   if (order.getCreateEndDate() != null && order.getCreateDate() != null)
            query.addCriteria(where("objectId").gte(new ObjectId(LocalDateTimeUtil.LocalDateTimeToUdate(order.getCreateDate()))).lte(new ObjectId(LocalDateTimeUtil.LocalDateTimeToUdate(order.getCreateEndDate()))));
        else {
            Optional.ofNullable(order.getCreateDate()).ifPresent(createDate -> query.addCriteria(where("objectId").gte(new ObjectId(LocalDateTimeUtil.LocalDateTimeToUdate(createDate)))));
            Optional.ofNullable(order.getCreateEndDate()).ifPresent(endDate -> query.addCriteria(where("objectId").lte(new ObjectId(LocalDateTimeUtil.LocalDateTimeToUdate(endDate)))));
        }
原文地址:https://www.cnblogs.com/sweetchildomine/p/7807937.html