我已配置RestHeart以从MongoDB获取数据。与使用客户端查询MongoDB(RoboMongo,MongoDB Compass ...)相比,大多数请求都能正常运行并返回相同的结果。但是有些请求如下所示,涉及过滤器的日期为字符串需要比MongoDB客户端更长的时间,Nginx在60s后关闭连接(与客户端的相同查询需要0.163s)
## Request
https://IP/DB/Collection/?filter={'DATE_A':'2017-08-24'}
## Query
db.getCollection('collection').find({'DATE_A':'2017-08-24'})
该集合具有DATE_A属性的索引,该属性在客户端执行查询时使用。
RestHeart的配置与文档中的默认配置相同,但与MongoDB的连接不同。在这种情况下,我使用具有3个实例的集群(1个主服务器和2个从服务器)。此外,RestHeart日志文件显示除了这些请求之外执行的所有请求,因此我无法看到它们发生了什么。
有任何建议,以便发现此查询的问题是什么以及在哪里?提前谢谢。
答案 0 :(得分:1)
Restheart也会按_id降序排序结果。
尝试添加sort = {' date': - 1}或构建复合索引