2016-08-22 5 views
1

Node.JS에 기본적으로 30 분마다 WebAPI의 데이터 스냅 샷을 검색하는 애플리케이션이 있습니다. 집계 쿼리를 사용하여 데이터베이스를 조회하려고하면 응용 프로그램에서 시간 초과 관련 오류 (MongoError : 연결 1에서 127.0.0.1:27017 시간 초과)를 트리거합니다. 내 기록에서 정확히 30 초가 걸리는 것을 알 수 있습니다. 집계 쿼리가이 같은 것입니다 :MongoDB 시간 초과 문제 (Node.js)

collection.aggregate([{ 
      "$group": { 
       "_id": { 
        country: "$country", 
        user: "$user" 
       } 
      } 
     }]). 

내가 다른 클라이언트 (그러나 동일한 데이터베이스)에 쿼리를 테스트하고 25.000.000 기록을 위해 함께 aprox 60 초 걸립니다. 내 가정은 내 응용 프로그램이 쿼리를 끝내지 못하도록 차단하는 30 초 값이있는 시간 초과 매개 변수가 있다는 것입니다. Node.JS에서 어떻게이 매개 변수를 설정할 수 있습니까? 'mongodb'js 라이브러리를 사용하고 있고 호스트 컴퓨터가 Windows입니다.

저는 오라클이나 MySQL과 같은 전통적인 솔루션 대신 MongoDB를 어떻게 사용할 수 있는지 조사하고 싶었습니다.하지만 분석이 전체 애플리케이션의 핵심 부분이기 때문에 이것이 거래 차단기 일 수 있습니다.

+0

"앱에서 시간 초과와 관련된 오류를 발생시킵니다." 이 오류는 정확히 어떻게 생겼습니까? 그거 어디서 났어? – pdenes

+0

오류는 다음과 같습니다. MongoError : connection to 127.0.0.1:27017 timed out – Bogdan

답변

4

이 답변의 해결책을 찾았습니다 : "Server x timed out" during MongoDB aggregation.

기본적으로, 연결 문자열은 이제 다음과 같습니다

this.server = 'mongodb://127.0.0.1:27017/test?socketTimeoutMS=90000'; 

socketTimeoutMS

트릭을했고, 나는 더 이상 연결 시간 초과 오류가 발생하지 않습니다.