[MONGODB] 몽고는 = 단일 문서의 크기를 얻을
MONGODB몽고는 = 단일 문서의 크기를 얻을
나는 몽고의 이상한 행동을 발견하고 나는 그것을 조금을 명확히하고 싶습니다 ... 내 요구는 간단하다 : 나는 컬렉션의 단일 문서의 크기를 좀하고 싶습니다. 나는 두 가지 솔루션을 발견 :
해결법
-
==============================
1.나는 해결책을 발견했다. Object.bsonsize의 이전 호출에 커서의 크기가 아닌 문서 자체를 반환 몽고.
나는 해결책을 발견했다. Object.bsonsize의 이전 호출에 커서의 크기가 아닌 문서 자체를 반환 몽고.
올바른 방법은이 명령을 사용하는 것입니다 :
Object.bsonsize(db.test.findOne({type:"auto"}))
이 (바이트) 특정 문서의 정확한 크기를 반환합니다.
-
==============================
2.문서가 컬렉션에 걸릴 공간의 유효량 때문에 기록 패딩 메커니즘의 문서의 크기보다 더 될 것입니다.
문서가 컬렉션에 걸릴 공간의 유효량 때문에 기록 패딩 메커니즘의 문서의 크기보다 더 될 것입니다.
db.test.stats () 및 Object.bsonsize (...)의 출력 사이에 차이가있는 이유이다.
Object.bsonsize () 함수에 대한 문서, 스틱 (바이트) 정확한 크기를 얻을 수 있습니다.
-
==============================
3.나는 실제 크기를 얻기 위해이 스크립트를 사용하는 것이 좋습니다.
나는 실제 크기를 얻기 위해이 스크립트를 사용하는 것이 좋습니다.
db.users.find().forEach(function(obj) { var size = Object.bsonsize(obj); print('_id: '+obj._id+' || Size: '+size+'B -> '+Math.round(size/(1024))+'KB -> '+Math.round(size/(1024*1024))+'MB (max 16MB)'); });
참고 : ID를 64 비트 정수 경우, 위의 인쇄에 ID 값을 자릅니다! 그런 경우에는 대신 사용할 수 있습니다 :
db.users.find().forEach(function(obj) { var size = Object.bsonsize(obj); var stats = { '_id': obj._id, 'bytes': size, 'KB': Math.round(size/(1024)), 'MB': Math.round(size/(1024*1024)) }; print(stats); });
이것은 또한 JSON을 반환하는 장점이있다, 그래서 RoboMongo 같은 GUI가를 집계 할 수 있습니다!
출처 : https://stackoverflow.com/a/16957505/3933634
편집 : 당신의 제안 완료 @zAlbee에 감사합니다.
from https://stackoverflow.com/questions/22008822/mongo-get-size-of-single-document by cc-by-sa and MIT license
'MONGODB' 카테고리의 다른 글
[MONGODB] 문자열로 몽고에서 BinData UUID를 가져옵니다 (0) | 2019.12.11 |
---|---|
[MONGODB] 어떻게 도커 통해 MongoDB의에 인증을 사용하려면? (0) | 2019.12.11 |
[MONGODB] 마지막 n 일 이내에 모든 문서 찾기 (0) | 2019.12.11 |
[MONGODB] 시작에 어떻게 MongoDB를 컨테이너에 대한 DB를 만드는 방법? (0) | 2019.12.11 |
[MONGODB] 삽입 / Mongoid를 사용하여 업데이트를 배치? (0) | 2019.12.11 |