Java / MongoDB按日期查询

我在集合中将值存储为java.util.Date(),但是当我查询以获取两个特定日期之间的值时,最终得到的值超出了范围。这是我的代码:

插入

BasicDBObject object = new BasicDBObject();

...

object.put("dateAdded", new java.util.Date());

collection.insert(object);

查询

BasicDBObject query = new BasicDBObject();

query.put("dateAdded", new BasicDBObject("$gte", fromDate));

query.put("dateAdded", new BasicDBObject("$lte", toDate));

collection.find(query).sort(new BasicDBObject("dateAdded", -1));

当我在Wed Jul 27 16:54:49 EST 2011和之间查询时Wed Jul 27 16:54:49 EST

2011(基本上是fromDate = toDate),我得到的日期Tue Jul 26 09:43:37 EST

2011绝对不可能的对象。我在这里想念什么?

回答:

您正在执行的操作是仅在键覆盖中使用{$lte: toDate}丢失$gte运算符进行查询。您想要的是:

query.put("dateAdded", BasicDBObjectBuilder.start("$gte", fromDate).add("$lte", toDate).get());

以上是 Java / MongoDB按日期查询 的全部内容, 来源链接: utcz.com/qa/419807.html

回到顶部