본문 바로가기
정보보안/DB,SQL

MongoDB 3.7 버전 이상 db.collection.count() 메서드 사용불가 이슈

by 우동이 2022. 9. 1.
300x250

작업 날짜 : 2022-09-01

작업환경 : python 3.10.2

작업 라이브러리 버전 : 5.0.9

 

해당 이슈에 대한 내용은 MongoDB 3.7 버전 이상부터 db.collection.count() 함수가 사용 불가능한 이슈입니다.

 

db.collection.count() — MongoDB Manual

Docs Home → MongoDB Manual db.collection.count(query, options)mongosh MethodThis page documents a mongosh method. This is not the documentation for a language-specific driver such as Node.js.For MongoDB API drivers, refer to the language-specific MongoDB

www.mongodb.com

db.collection.count() 함수에 대한 내용은 MongoDB Maunal 사이트에서 확인할 수 있습니다.

 


test_variable이라는 시험용 변수 그리고 mongoDB의 board의 collection.count() 함수를 호출했지만 전혀 지원하지 않습니다.

만약 사용하게 된다면 에러가 발생합니다.


db.collection.count() 대체

저는 그래서 db.count_document/db.count_documents로 대체하니 동일 기능을 정상적으로 대체했는데

몽고 DB 문서를 살펴보니

 

공식 문서에서는 db.collection.count()와 countDocuments() 또한 사용하지 않는다고 합니다.

저는 count_documents로 대체했지만 사용하지 않는다고 하니 estimatedDocumentCount()로 대체해서 사용하는 게 가장 권장하는 대체법이라고 생각이 됩니다.

 

 

db.collection.estimatedDocumentCount() — MongoDB Manual

Docs Home → MongoDB Manual db.collection.estimatedDocumentCount(options)mongosh MethodThis page documents a mongosh method. This is not the documentation for a language-specific driver such as Node.js.For MongoDB API drivers, refer to the language-specif

www.mongodb.com

db.colletion.estimatedDocumentCount()은 option을 매개변수로 받습니다.

기존의 db.collection.count()나 count_document는 쿼리를 지정해 선택적인 결과 반환이 가능했는데

db.colletion.estimatedDocumentCount() 은 모든 문서를 반환한다고 합니다.

 

한 가지 궁금한 점이 countDocuments()는 기존의 collection.count() 함수를 대체하는 것인지

아니면 이 함수 또한 대체되어야 하는 점인지 애매하고 정보가 없다는 점입니다.

 

아무래도 5.0.9 버전인 제 작업환경에서는 count_document() 함수로 count() 함수를 대체해 사용이 가능한 걸 보니 countdocument() 함수로 특정 쿼리를 불러오고 estimatedDocumentCount()로는 모든 쿼리를 불러오는 듯합니다.

 

 

300x250

댓글