0

我是 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);

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

4

2 回答 2

0

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

于 2017-05-11T07:43:21.323 回答
0
db.CollectionName.find({"receivedOn" : new ISODate("2017-05-10T18:51:58.893+05:30") });
于 2017-05-11T07:15:42.857 回答