我已将 RestHeart 配置为从 MongoDB 获取数据。与使用客户端查询 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 日志文件显示了除这些请求之外执行的所有请求,因此我看不到它们发生了什么。
有什么建议可以发现这个查询的问题和问题在哪里?提前致谢。