在mongo db中按日期查询

时间:2017-05-11 06:54:04

标签: java mongodb mongodb-query jongo

我是Mongodb的新手。我想找到存储在mongodb中的receivedOn日期大于特定日期的对象。我的对象结构是:

{
    "_id" : ObjectId("591313fa79a7f2826cdfcdbd"),
    "uuid" : "849cf178-bf19-4a32-bda8-b754551c57f0",
    "status" : "SENT",
    "receivedOn" : ISODate("2017-05-10T18:51:58.893+05:30"),
    "scheduledOn" : ISODate("2017-05-10T18:51:58.893+05:30"),
    "deliveredOn" : ISODate("2017-05-10T18:52:02.628+05:30")
}

我正在使用Jongo驱动程序进行查询。我的查询如下:

collection.find("{\"receivedOn\": {$gte : #}}", javaDate);

我从这个查询中得不到任何结果,但是收集中有应该返回的文档。我的查询出了什么问题?

2 个答案:

答案 0 :(得分:0)

db.CollectionName.find({"receivedOn" : new ISODate("2017-05-10T18:51:58.893+05:30") });

答案 1 :(得分:0)

当您使用java,util.Date时,Date对象转换为json时可能会出现时区问题。 Java可能会根据时区向您的日期添加/减去小时数。理想情况下,在存储日期时,它们应该是UTC格式,并且在检索时,它们应该是UTC。