2012-08-16 3 views
6

limit 연산자의 음수 값은 무엇을 의미합니까?MongoDB "limit"연산자 음수 값

http://www.mongodb.org/display/DOCS/Aggregation+Framework+-+ 내가 limit(1) 또는 limit(-1)을 수행 할 때 $ 제한

http://www.mongodb.org/display/DOCS/Advanced+Queries#AdvancedQueries-%7B%7Blimit%28%29%7D%7D

몽고가 똑같은 문서를 반환?

+0

그것은 나에게 소리 몽고는 사용자가 입력 한 제한의 절대 값을 취하고있다. 음의 한도가 의미가 없기 때문에 어느 것이 좋습니다. –

+0

[MongoDB 쿼리에서 부정적인 한계는 무엇을 의미합니까?] (http://stackoverflow.com/questions/9833941/in-a-mongodb-query-what-does-a-negative-limit-mean)) –

답변

14

한계 수가 음수이면 일반적으로 데이터베이스는 해당 개수의 결과를 반환하고 커서를 닫습니다. 본질적으로 결과의 단일 배치가 반환되며 해당 쿼리에 대한 결과는 더 이상 가져올 수 없습니다.

일반적이지 않은 경우 음수 한계 값이 batch size (특히 최대 일괄 처리 크기)을 초과하는 경우 일괄 처리가 반환되고 한계에 도달했는지 여부에 관계없이 커서가 닫힙니다. 따라서 제한이 너무 높으면 단일 일괄 처리 규칙이 지정된 제한보다 우선합니다.

한계가 양수이면 커서를 열린 상태로 두어 더 많은 결과를 얻고 커서가 없어 질 때까지 계속 반복 할 수 있습니다.

배치 및 커서에 대한 자세한 내용은 여기를 살펴 :

http://docs.mongodb.org/manual/core/cursors/#cursor-batches http://docs.mongodb.org/manual/reference/method/cursor.limit/#negative-values

+1

고마워요, 그래서 하나의 옵션이 다른 것보다 더 효율적입니까? – kapso

+2

해당 개수의 결과를 정확하게 검색하는 경우 한도가 1보다 크고 배치 크기 한도에 도달하면 (기본값은 101이지만 조절할 수 있음 - 내 대답 및 일괄 처리 섹션의 링크 참조), 음의 한계가 유용 할 수 있습니다. 그렇지 않으면 음의 한도 사용에 문제가있을 수 있습니다. 항상 그렇듯이 데이터 세트로 테스트하는 것이 좋습니다. –