2016-10-25 2 views
2

집계는 다음과 같습니다Pymongo에서 커서 제한 시간없이 집계를 만들 수 있습니까?

res = Things.objects._collection.aggregate(pipeline, 
      allowDiskUse=True, 
      batchSize=101, 
      noCursorTimeout=True 
     ) 

OperationFailure 실패 : 알 수없는 필드를 'noCursorTimeout'

그것은 no_cursor_timeout 발견과 함께 사용할 수있는 Pymongo 문서에서 나타납니다

(), 그러나 나는 aggregate()에 대해 필적 할만한 ** kwargs를 찾는데 실패했다.

setParameter 또는 maxTimeMS를 사용하고 싶지 않습니다. SERVER-15042

OP_QUERY 헤더의 NoCursorTimeout 비트가 10 분 이상 유휴 상태의 커서를 닫는에서 서버를 방지 : MongoDB에의 락스 사이트에서

: UPDATE

. 클라이언트는 결과 묶음을 10 분 이상 처리하면이 비트를 설정할 수 있습니다.

"aggregate"및 "parallelCollectionScan"명령을 사용하면 클라이언트가 커서 시간 제한을 해제 할 수 있어야합니다.

이 티켓에 대한 응답이었다 :

우리는 의도적으로 noCursorTimeout을 지원하지 않습니다. 에 대한 이론적 근거는 커서 킵 얼라이브를 구현할 때 사라질 것입니다. 그 작품은 서버 - 6036에서 추적됩니다.

SERVER-6036에서 상대 :

  • 업데이트 : 2016 9월 14일 그리니치 표준시 오후 3시 53분 5초 + 0000
  • 상태 : OPEN
  • 해상도 : 확인되지 않은
  • 수정 버전/S : 계획되었지만 예정되어 있지 않음

문서를 올바르게 읽은 경우 cu rsor no timeout 옵션은 아직 aggregate()에 대해 존재하지 않습니다.

답변

5

맞습니다. 개별 집계 커서에서 커서 시간 제한을 사용하지 못하게 설정할 수 없습니다.

mongod --setParameter cursorTimeoutMillis=600000 # 10 minutes 

는 MongoDB의 버전 정보를 원하시면 SERVER-8188를 참조하고, 런타임에이 매개 변수를 설정하는 방법 :하지만 우리는 많은 수의 증가 수, 글로벌 설정 설정, cursorTimeoutMillis을 제공했습니다.

관련 문제