MongoDB에서 count()와 find()의 차이.count()
차이점이 뭐죠, 기본적으로 제 컬렉션에 있는 모든 문서를 찾고 싶었습니다. db.mycollection.count()대db.mycollection.find().count()?
둘 다 같은 결과를 반환합니다.누군가가 선택할 이유가 있습니까?count()대find().count()라는 사실과는 대조적으로find()에는 셸에서 더 많은 정보를 보려면 "그것"을 입력해야 하는 기본 제한이 적용됩니다(잘못된 경우 수정).
db.collection.count()그리고.cursor.count()명령어 주위의 래퍼일 뿐이므로 실행됩니다.db.collection.count()그리고.cursor.count()동일한 값을 사용하거나 사용하지 않으면 동일한 쿼리 인수가 반환되고, 동일한 결과가 반환됩니다.하지만, 그count결과가 샤드 클러스터에서 부정확할 수 있습니다.
4.0 기능과 호환되는 MongoDB 드라이버는 countDocuments() 및 estimatedDocumentCount()에 대한 새로운 API를 선호하기 위해 각각의 커서 및 컬렉션 수() API를 더 이상 사용하지 않습니다.지정된 드라이버의 특정 API 이름은 드라이버 설명서를 참조하십시오.
메소드는 내부적으로 집계 쿼리를 사용하여 문서 수를 반환하고 메타데이터를 기반으로 문서 수를 반환합니다.
언급할 가치가 있습니다.estimatedDocumentCount설명서에 언급된 대로 출력이 부정확할 수 있습니다.
db.collection.count()매개 변수를 지정하지 않으면 집합의 모든 문서가 카운트됩니다. db.collection.find()매개변수 없이 집합의 모든 문서와 일치하고 추가합니다.count()숫자를 셀 수 있으므로 차이가 없습니다.
이는 db.collection.count() 설명서에서 명시적으로 확인할 수 있습니다.
주문 컬렉션의 모든 문서 수를 계산하려면 다음 작업을 사용합니다.
db.orders.count()이 작업은 다음과 같습니다.
db.orders.find().count()
쉴락의 다른 대답에서 언급했듯이, 두 가지는 동등합니다 - 단,db.collection.count()샤드 클러스터의 경우 부정확할 수 있습니다.
최신 설명서에는 다음과 같은 내용이 나와 있습니다.
count()는 db.collection.find()와 동일합니다.구문을 세어 보다
그리고 나서.
샤드 클러스터
샤드 클러스터에서 db.collection.count()는 고아 문서가 있거나 청크 마이그레이션이 진행 중인 경우 개수가 정확하지 않을 수 있습니다.
설명서에서는 이 버그를 완화하는 방법을 설명합니다(애그리게이트 사용).
db.collection.count()는 db.collection.find()와 동일합니다.구문을 세어 보다
예
컬렉션의 모든 문서 카운트
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()는 부정확할 수 있습니다.
- 샤드 클러스터에서 쿼리 술어가 없는 db.collection.count()는 고아 문서가 있거나 청크 마이그레이션이 진행 중인 경우 개수가 정확하지 않을 수 있습니다.
- Wired Tiger 저장 엔진을 사용하여 부정하게 mongod를 종료한 후 count()에 의해 보고된 카운트 통계가 부정확할 수 있습니다.
저는 당신이 다음과 같은 종류의 페이지를 사용하고 있다고 믿습니다.
find(query).limit().skip().count()
다음과 같은 결과를 얻지 못할 것입니다.
count(query)
그래서 이런 경우에, 총계를 얻고 싶다면, 두 가지를 모두 사용해야 할 것 같습니다.
언급URL : https://stackoverflow.com/questions/32666330/difference-between-count-and-find-count-in-mongodb
'source' 카테고리의 다른 글
| WPF 애플리케이션에서 App.config 파일을 사용하는 방법은 무엇입니까? (0) | 2023.05.04 |
|---|---|
| Postgresql 열 = 배열이 있는 행을 선택합니다. (0) | 2023.05.04 |
| 로컬 깃 커밋을 취소하려면 어떻게 해야 합니까? (0) | 2023.05.04 |
| Xcode에서 특정 소스 파일의 모든 경고를 억제하는 방법은 무엇입니까? (0) | 2023.05.04 |
| MongoDB에는 기본 REST 인터페이스가 있습니까? (0) | 2023.05.04 |