首先说明下,Mongodb中用的日期类型是ISODate,为了查询时通过日期过滤方便,所以我们插入数据时也需要插入ISODate型的数据,在Java中我们直接插入Date型Mongodb会自动帮我们转成ISODate型。
关键点就是用$gte,$lt比较日期,$gte就是>=的意思,$lt就是<的意思,
排序时需要传两个参数,第一个参数是按哪个字段排序,第二个参数是升序还是倒序,1表明升序,-1表明倒序。
直接上代码吧。
// 设置查询条件 BasicDBObject doc = new BasicDBObject(); // 查询开始时间为去年同一时间 Date startTime = mongoService.getLastYearDate(); // 结束时间为当前时间 Date endTime = new Date(); doc.put("announceCreateTime", new BasicDBObject("$gte", startTime).append("$lt", endTime)); MongoCollection<Document> collection = mongoTemplate.getCollection(collectionName); FindIterable<Document> result = collection.find(doc).sort(new BasicDBObject("createTime", -1));