【问题标题】:Using Firedac For MongoDB's Time Range Query使用 Firedac 进行 MongoDB 的时间范围查询
【发布时间】:2015-12-08 03:56:22
【问题描述】:

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

这是我的代码:

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

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

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

项目 TestC.cpp 引发异常类 EJSONReaderException 并带有消息“无法读取无限值”路径“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 来做到这一点?

【问题讨论】:

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


    【解决方案1】:

    你应该使用Extended JSON:

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

    【讨论】:

      猜你喜欢
      • 2018-05-13
      • 1970-01-01
      • 2011-07-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多