복붙노트

[MONGODB] 수 () 찾아 ()의 차이. COUNT ()하여 MongoDB에서

MONGODB

수 () 찾아 ()의 차이. COUNT ()하여 MongoDB에서

나는 기본적으로 mycollection에있는 모든 문서를 찾을 싶었다의 차이점은 무엇입니까. db.mycollection.count () 대 db.mycollection.find (). COUNT ()?

그들은 모두 같은 결과를 반환합니다. 누군가가 찾기 () 대 수를 ()를 선택 왜 어떤 이유가 있나요. COUNT ()? 사용자가 입력해야되는 (내가 틀렸다면 올바른 나) 발견 ()가 적용되는 기본 제한이 있다는 사실과는 대조적으로 "는"순서대로 쉘에서 더 볼 수 있습니다.

해결법

  1. ==============================

    1.db.collection.count ()와 cursor.count ()는 단순히 따라서 동일한 쿼리 인수를 반환합니다 같은 동일하지 않고 /와 db.collection.count ()와 cursor.count ()를 실행하는 카운트 명령 주위의 래퍼, 반환 결과 동일. 그러나 집계 결과는 분산됩니다 클러스터의 부정확 할 수 있습니다.

    db.collection.count ()와 cursor.count ()는 단순히 따라서 동일한 쿼리 인수를 반환합니다 같은 동일하지 않고 /와 db.collection.count ()와 cursor.count ()를 실행하는 카운트 명령 주위의 래퍼, 반환 결과 동일. 그러나 집계 결과는 분산됩니다 클러스터의 부정확 할 수 있습니다.

    db.collection.countDocuments 방법은 내부적으로 db.collection.estimatedDocumentCount / 반환 문서 메타 데이터를 기반으로 카운트하는 동안 페이지 수를 반환 집계 쿼리를 사용합니다.

    그것은 가치가 문서에서 언급 estimatedDocumentCount 출력이 부정확 할 수 있다고 언급.

  2. ==============================

    2.매개 변수가없는 db.collection.count는 () 콜렉션에있는 모든 문서를 계산합니다. db.collection.find () 매개 변수없이 콜렉션의 모든 문서와 일치하고, ()을 카운트 수를 추가, 그래서 아무런 차이가 없다.

    매개 변수가없는 db.collection.count는 () 콜렉션에있는 모든 문서를 계산합니다. db.collection.find () 매개 변수없이 콜렉션의 모든 문서와 일치하고, ()을 카운트 수를 추가, 그래서 아무런 차이가 없다.

    이것은 db.collection.count () 문서에 명시 적으로 확인 :

  3. ==============================

    3.sheilak하여 다른 답변에서 언급 된 바와 같이, 두 개의 동일 - 그 db.collection.count () 분산됩니다 클러스터 부정확 할 수 제외.

    sheilak하여 다른 답변에서 언급 된 바와 같이, 두 개의 동일 - 그 db.collection.count () 분산됩니다 클러스터 부정확 할 수 제외.

    최신 문서는 말합니다 :

    그리고,

    문서는 (집계를 사용)이 버그를 완화하는 방법을 설명합니다.

  4. ==============================

    4.db.collection.count ()는 db.collection.find (쿼리) .count () 구조체에 상당한다.

    db.collection.count ()는 db.collection.find (쿼리) .count () 구조체에 상당한다.

    컬렉션에있는 모든 문서를 계산

    db.orders.count()
    

    이 작업은 다음과 동일합니다 :

    db.orders.find().count()
    

    모든 문서 쿼리 일치하는 카운트

    새 날짜보다 필드 ord_dt의 큰 함께 주문 컬렉션에서 문서의 수를 계산 ('01 / 01 / 2012 ') :

    db.orders.count( { ord_dt: { $gt: new Date('01/01/2012') } } )
    

    쿼리는 다음과 동일합니다 :

    db.orders.find( { ord_dt: { $gt: new Date('01/01/2012') } } ).count()
    

    다음 시나리오 db.collection.count의 문서에 따라 () 부정확 할 수 있습니다 :

  5. ==============================

    5.이 같은 매김의 어떤 종류를 사용하는 경우 저는 믿습니다 :

    이 같은 매김의 어떤 종류를 사용하는 경우 저는 믿습니다 :

    find(query).limit().skip().count() 
    

    동일한 결과를 얻을 수 없습니다

    count(query)
    

    당신이 총을 얻으려면 그래서 이런 경우에, 나는 당신이 모두를 사용해야 할 수도 있습니다 생각합니다.

  6. from https://stackoverflow.com/questions/32666330/difference-between-count-and-find-count-in-mongodb by cc-by-sa and MIT license