MongoDB-查詢大於某個時間,小於某個時間,在某一段時間范圍


MongoDB查詢大於某個時間,小於某個時間,在某一段時間范圍

2018年07月25日 10:34:37 lfendo 閱讀數:17597

 版權聲明:本文為博主原創文章,未經博主允許不得轉載。 https://blog.csdn.net/u011781521/article/details/81197781

MongoDB 日期查詢目前可通過Date 和ISODate兩種方式:

MongoDB條件對應關系


 
  1. (>) 大於 - $gt

  2. (<) 小於 - $lt

  3. (>=) 大於等於 - $gte

  4. (<= ) 小於等於 - $lte

1.Date方式

例如查詢ct>=2012.12.7 且et<=2012.12.7:可翻譯為

"ct":{$gte:new Date(2012,11,7)},"et":{$lte:new Date(2012,11,7)}

如下是查詢日期大於等於2016年12月1日的記錄條數(注意,中間的月份寫11,就是12月)

db.xxx.find({"ct":{$gte:new Date(2016,11,1)}})

2.ISODate方式

ISODate("2016-01-01T00:00:00Z")

3.示列

以ISODate查詢:


 
  1. db.xxxx.find({"ct":{"$gt":ISODate("2017-04-20T01:16:33.303Z")}}) // 大於某個時間

  2. db.xxxx.find({"ct":{"$lt":ISODate("2017-04-20T01:16:33.303Z")}}) // 小於某個時間

  3. db.xxxx.find({"$and":[{"ct":{"$gt":ISODate("2017-04-20T01:16:33.303Z")}},{"ct":{"$lt":ISODate("2018-12-05T01:16:33.303Z")}}]}) // 某個時間段

  4. db.xxxx.find({"ct":{"$gte":ISODate("2017-04-20T01:16:33.303Z"),"$lte":ISODate("2018-12-05T01:16:33.303Z")}}) //某個時間段

4.JAVA API操作


 
  1. DBCollection dbcollection = xxx.getCollection("xxxxxx");

  2. DBObject dbObject = new BasicDBObject();

  3. String startDate = "2017-04-24 21:59:06";

  4. String endDate = "2018-04-24 21:59:06";

  5. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

  6. dbObject.put("$gte", sdf.parse(startDate));

  7. dbObject.put("$lte", sdf.parse(endDate));

  8. DBObject ageCompare = new BasicDBObject();

  9. ageCompare.put("ct",dbObject);

  10. //獲取指定字段

  11. DBObject fieldObject = new BasicDBObject();

  12. fieldObject.put("user", true);

  13. fieldObject.put("goods", true);

  14. DBObject returnDB = dbcollection.findOne(ageCompare,fieldObject);

  15. System.out.println(JsonUtil.toJson(returnDB));


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM