如何在所选字段上运行查找范围的查询

时间:2017-11-08 14:42:06

标签: java database mongodb nosql

我正在尝试使用mongo java驱动程序

运行以下命令
db.collection.find({"Date": 20171108}, {_id : false})

但是我试图在多个日期延长这个时间。例如10/30/2017 - 11/8/2017。为此,我正在设置以下

BasicDBObject query = new BasicDBObject();
BasicDBObject startDate = new BasicDBObject("Date", "20171030");
BasicDBObject endDate = new BasicDBObject("Date", "20171108");

但我不确定如何将它们组合在一起做类似

的事情
DBCursor cursor = coll.find(query, <startDate endDate>);

我是mongo的新手所以任何帮助都是适当的

1 个答案:

答案 0 :(得分:0)

您可以使用以下标准执行此操作:

    DateFormat df = new SimpleDateFormat("yyyyMMdd");
    String startDateString = "20171030";
    String endDateString = "20171108";
    Date startDate;
    Date endDate;

    try {
        startDate = df.parse(startDateString);
        endDate = df.parse(endDateString);
        BasicDBObject criteria = new BasicDBObject();
        criteria.put("Date", new BasicDBObject(new BasicDBObject("$gte", startDate).append("$lte", endDate)));
    } catch (ParseException e) {
        e.printStackTrace();
    }

然后:

db.find(criteria);