MongoDB의 DBCursor
의 cursor.count()
과 cursor.size()
방법의 차이점은 무엇입니까? Javadoc of the MongoDB Java Driver에서MongoDB에서 cursor.count()와 cursor.size() 사이의 차이
13
A
답변
29
, 그것은 말한다 :
DBCursor.count()가 : 쿼리와 일치하는 개체의 수를 계산합니다. 이 은 이 아니며은 제한/건너 뛰기를 고려합니다.
DBCursor.size() : 쿼리와 일치하는 개체의 수를 계산합니다. 이 은 제한/건너 뛰기를 고려합니다.
1
답변보다 자세한 내용은 우리 팀이이 두 가지를 혼합하는 문제에 직면했음을 지적하고자합니다.
는 그것은cursor.count()
방법을 호출 한 후, 한계가
이 (plase이
this 다른 질문을 살펴) 무시되었습니다 밝혀졌다
DBCursor cursor = collection.find(query).limit(batchSize);
logger.info("{} items found.", cursor.count());
while (cursor.hasNext()) {
...
}
, 우리가 얼마나 많은 알고 구성 :
우리는 이런 일이 있었다 항목이 쿼리에 의해 반환되었으므로 을 호출하면 원하지 않는 부수 효과가 있었기 때문에 cursor.size()
메서드를 호출해야했습니다.
우리가 직면 한 문제의 출처를 찾기가 쉽지 않았기 때문에 다른 사람들에게 도움이되기를 바랍니다.
+0
'cursor.count()'는 문서화 된 것처럼 한계를 무시할뿐만 아니라 커서를 반복 처리하는 것과 같은 후속 작업이 한계가 설정되지 않은 것처럼 동작하도록 커서에서 제한을 실제로 제거 했습니까? –
둘 다 똑같은 것처럼 보입니다 ... 왜 그들은 2 가지 방법을 도입 했습니까? 두 가지간에 성능 차이가 있습니까? – Byter
그들은 동일하지 않습니다. 하나는 제한/건너 뛰기를 고려하지만 다른 것은 고려하지 않습니다. –
나는 그 차이가'does not take'에 있다고 생각하고'does take'는 제한/건너 뛰기를 고려합니다. –