Фильтр даты RestHeart не использует индекс

Я настроил RestHeart для получения данных из MongoDB. Запросы, которые включают String, Object, Number, работают хорошо и возвращают те же результаты, что и при использовании клиента для запроса MongoDB (RoboMongo, MongoDB Compass...). Однако запросы с типом данных Date занимают больше времени, чем с клиентами MongoDB, и Nginx закрывает соединение через 60 секунд (тот же запрос с клиентом занимает 0,163 секунды).

## Query in a MongoDB client
db.getCollection('collection').find({"DATE_A_FMT": {'$gte':ISODate('2017-02-21T05:00:00.000Z')}})

## Request with RestHeart
https://IP/DB/collection/?filter={'DATE_A_FMT': {'$gte':{'$date':'2017-02-20T05:00:00.000Z'}}}

Коллекция имеет индекс для поля DATE_A_FMT, которое используется при выполнении запроса с клиентом. Кроме того, я попытался добавить сортировку, но у меня тот же результат.

Конфигурация RestHeart такая же, как конфигурация по умолчанию в документации, с разницей соединения с MongoDB. В этом случае я использую кластер с 3 экземплярами (1 ведущий и 2 ведомых). Кроме того, в файле журнала RestHeart отображаются все запросы, которые были выполнены, кроме этих запросов, поэтому я не вижу, что с ними происходит.

Любое предложение, чтобы узнать, что и где проблема с этими запросами? Заранее спасибо.

0 ответов

Другие вопросы по тегам