【发布时间】:2018-02-02 16:24:07
【问题描述】:
我需要在用户集合中进行日期范围查询。但是它没有日期字段。我找到了一些有用的资源,可以先将时间转换为 ObjectId,然后在 Mongodb shell 中对其进行查询:
>var idMin = ObjectId(Math.floor((new Date('2018/1/1'))/1000).toString(16) + "0000000000000000")
>var idMax = ObjectId(Math.floor((new Date('2018/2/1'))/1000).toString(16) + "0000000000000000")
>db.users.find({_id:{$gt: idMin, $lt: idMax}})
我的项目将在前端获取时间范围,将其转换为 ObjectId 字符串(idMin,idMax),然后向 Spring REST API 发出请求以获取数据。如何使用带有可分页的 Spring 实现查询? spring mongodb lib中是否有ObjectId类?
用户.java:
@Document(collection = "users")
public class User {
@Id
private String id;
private String name;
private int age;
}
UserRepository.java
@RequestMapping(path = "/users/{idMin}/{idMax}", method = RequestMethod.GET)
public interface UserRepository extends MongoRepository<User, String> {
Page<User> findAll(Pageable pageable);
//TODO: query on id range {idMin, idMax}
}
【问题讨论】:
标签: java spring mongodb rest pagination