2017-09-26 1 views
0

MongoDB에서 데이터를 가져 오기 위해 RestHeart를 구성했습니다. 대부분의 요청은 잘 작동하며 클라이언트를 사용하여 MongoDB (RoboMongo, MongoDB Compass ...)를 쿼리하는 것보다 동일한 결과를 반환합니다. 그러나 문자열로 날짜와 필터가 포함 된 다음과 같은 몇 가지 요구는 MongoDB를 클라이언트보다 더 오래 걸릴 및 Nginx에 60 년대 이후의 연결 (클라이언트와 같은 쿼리가 0.163s 소요)RestHeart로 MongoDB를 쿼리하면 MongoDB 클라이언트와 다른 결과가 나타납니다.

## 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 로그 파일에는 이러한 요청을 제외하고 실행되는 모든 요청이 표시되므로 어떤 일이 발생하는지 볼 수 없습니다.

이 쿼리의 문제가 무엇이고 어디서 발견되는지 알기위한 제안이 있으십니까? 미리 감사드립니다.

답변

1

휴식 또한 기본적으로 _id 내림차순 결과를 정렬합니다.

를 추가해보십시오 종류 = { '날짜'- 1} : "(ISODate 또는 내가"DATE_A "얻을 MongoDB를 클라이언트에서 이제 날짜 유형 'DATE_A'필드 유형을 변경 한

+0

복합 인덱스를 작성 2017-02-21T05 : 00 : 00.000Z "). RestHeart를 사용하여 날짜별로 필터링하는 방법을 지금 찾으려고합니다. 감사. –

관련 문제