相关疑难解决方法(0)

在mongodb中使用ISODate进行日期查询似乎不起作用

我似乎无法在MongoDB中使用最基本的日期查询.使用看起来像这样的文档:

{
    "_id" : "foobar/201310",
    "ap" : "foobar",
    "dt" : ISODate("2013-10-01T00:00:00.000Z"),
    "tl" : 375439
}
Run Code Online (Sandbox Code Playgroud)

一个看起来像这样的查询:

{ 
    "dt" : { 
        "$gte" : { 
            "$date" : "2013-10-01T00:00:00.000Z"
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我从执行中得到0结果:

db.mycollection.find({
  "dt" : { "$gte" : { "$date" : "2013-10-01T00:00:00.000Z"}}
})
Run Code Online (Sandbox Code Playgroud)

知道为什么这不起作用吗?

作为参考,此查询由Spring的MongoTemplate生成,因此我无法直接控制最终发送到MongoDB的查询.

(PS)

> db.version()
2.4.7
Run Code Online (Sandbox Code Playgroud)

谢谢!

json mongodb bson isodate

170
推荐指数
5
解决办法
33万
查看次数

按日期查询Java/MongoDB

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

插入

BasicDBObject object = new BasicDBObject();
...
object.put("dateAdded", new java.util.Date());
collection.insert(object);
Run Code Online (Sandbox Code Playgroud)

查询

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));
Run Code Online (Sandbox Code Playgroud)

当我在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绝对不可能.我在这里错过了什么?

java datetime mongodb

35
推荐指数
3
解决办法
6万
查看次数

标签 统计

mongodb ×2

bson ×1

datetime ×1

isodate ×1

java ×1

json ×1