MongoRepository查询日期之间

Sau*_*mar 6 spring-data spring-data-mongodb

我的pojo

public class PacketData implements Serializable {

    private static final long serialVersionUID = 1L;

    @Id
    private final String token = UUID.randomUUID().toString();

    private final ZonedDateTime arrived = ZonedDateTime.now();
}
Run Code Online (Sandbox Code Playgroud)

我打算像下面这样使用。

@Query("?")
List<PacketData> findPacketArrivedBetween(ZonedDateTime startDate, ZonedDateTime endDate);
Run Code Online (Sandbox Code Playgroud)

有没有一种方法可以将以下查询放入上述query批注中,以及如何执行大于和小于逻辑

Query query = new Query().addCriteria(Criteria.where("arrived").gte(startDate).lte(endDate));
Run Code Online (Sandbox Code Playgroud)

use*_*814 5

您可以尝试以下几种方法。

没有查询注释。

List<PacketData> findByArrivedBetween(ZonedDateTime startDate, ZonedDateTime endDate);
Run Code Online (Sandbox Code Playgroud)

带有查询注释。

@Query("{'arrived': {$gte: ?0, $lte:?1 }}")
List<PacketData> findPacketArrivedBetween(ZonedDateTime startDate, ZonedDateTime endDate);
Run Code Online (Sandbox Code Playgroud)