Использование Firedac для запроса временного диапазона MongoDB

У меня есть один вопрос о запросе временного диапазона.

Вот мой код:

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

где DayTime Тип данных поля: Дата

Компиляция в порядке, но она всегда выдает исключение следующим образом:

Project 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?

1 ответ

Вы должны использовать Extended JSON:

MGPipeline->Match()->Doc->AsJSON="{DayTime:{$gt:{\"$date\":\"2000-11-02T17:04:11.102Z\"}}}";
Другие вопросы по тегам