使用Firedac进行MongoDB的时间范围查询

时间:2015-12-08 03:56:22

标签: c++ mongodb firedac c++builder-10-seattle

我有一个关于时间范围查询的问题。

这是我的代码:

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

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

编译没问题,但它总是抛出异常,如下所示:

  

项目TestC.cpp引发了异常类EJSONReaderException,其中包含消息'无法读取无穷大值' Path' DayTime',第1行,第9位'。

我还尝试了另一个代码:

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

但它也会引发异常。

  

TestC.cpp引发异常类$ C0000094,消息'整数除以零在0x50096'

我的MongoDB版本是3.0。

现在我无法进行任何时间范围查询。

使用FireDac和Rad Studio XE10可以告诉我吗?

1 个答案:

答案 0 :(得分:1)

您应该使用Extended JSON

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