带有日期范围的MongoDB查询问题

时间:2013-06-25 07:08:07

标签: java mongodb morphia

我正在尝试使用morphia在MongoDB上执行简单查询,在我的本地机器上工作正常但在另一台机器上它不工作,
这是我的查询

List<Ino> ino = ds.find(Ino.class).field("g_id").hasAnyOf(gId).field("iDate").greaterThanOrEq(stDate)    
.field("iDate").lessThan(inoEnd).asList()

stDate和inoEnd

Tue Jan 01 16:36:37 IST 2013 , Wed Jan 30 16:36:37 IST 2013

上面的查询返回空列表,但是当我使用以下quires尝试它时,它可以正常工作

List<Ino> ino = ds.find(Ino.class).field("g_id").hasAnyOf(gId).field("iDate").greaterThanOrEq(stDate).asList()

返回

    [Ino(_id=926, g_id=27, iDate=Mon Jan 14 00:00:00 IST 2013), 
     Ino(_id=1026, g_id=27, iDate=Thu Feb 14 00:00:00 IST 2013), 
     Ino(_id=1110, g_id=27, iDate=Thu Mar 14 00:00:00 IST 2013)]

然后我试了

    List<Ino> ino = ds.find(Ino.class).field("g_id").hasAnyOf(gId).field("iDate").lessThan(inoEnd).asList()

返回

   [Ino(_id=926, g_id=27, iDate=Mon Jan 14 00:00:00 IST 2013)]

我的本​​地和其他机器只有不同的是数据表示
这就是我的本地收藏品

{ "_id" : 926, "className" : "test", "g_id" : 27, "iDate" : ISODate("2013-01-14T18:30:00Z")}  

但在其他机器收藏中

{ "_id" : 926, "className" : "test", "g_id" : 27, "iDate" : "Mon Jan 14 2013 00:00:00 GMT+0530 (IST)"}

那么上面第一个查询结果为空的原因是什么呢?

1 个答案:

答案 0 :(得分:0)

最后我用一个解决方案克服但仍然不知道出了什么问题,我将2.1版本的monogDB版本更新为2.4.4,然后一切按预期工作

由于