2015-12-08 49 views
0

我有一个关于时间范围查询的问题。对于MongoDB的时间范围查询使用Firedac

这里是我的代码:

TMongoPipeline* MGPipeline = new TMongoPipeline(FEnv); 
MGPipeline->Match()->Doc->AsJSON="{DayTime:{$gt:ISODate(\"2000-11-02T17:04:11.102Z\")}}";       ^^^^^^^^^                       

其中DayTime字段的数据类型为日期

编译是好的,但它总是抛出一个异常,因为这样的:

项目TestC.cpp引发异常类EJSONReaderException,消息'Can not read Infinity value'Path'DayTime',line 1,position 9'。

我也尝试另一个代码:

TMongoPipeline* MGPipeline = new TMongoPipeline(FEnv); 
MGPipeline->Match()->Doc->AsJSON="{DayTime:{$gt:new Date(2001,1,1)}}"; 
               ^^^^^^^^^                       

但它抛出异常了。

TestC.cpp '在0x50096整数除以零'

我的MongoDB的版本是3.0引发的异常类$ C0000094有消息。

现在我不能做任何时间范围查询。

无论如何可以告诉我通过使用FireDac和Rad Studio XE10来做到这一点吗?

回答

1

你应该使用Extended JSON

MGPipeline->Match()->Doc->AsJSON="{DayTime:{$gt:{\"$date\":\"2000-11-02T17:04:11.102Z\"}}}";