나는 mongo의 이상한 행동을 만났고 그것을 조금 명확히하고 싶습니다.
내 요청은 다음과 같이 간단합니다. 단일 문서의 크기를 수집하고 싶습니다. 두 가지 가능한 해결책을 찾았습니다.
- Object.bsonsize-크기를 바이트 단위로 반환해야하는 자바 스크립트 메서드
- db.collection.stats ()-데이터에 대해 "집계 된"(평균) 크기보기를 생성하는 'avgObjSize'줄이 있습니다. 단일 문서의 평균 크기를 나타냅니다.
문서가 하나만있는 테스트 컬렉션을 만들면 두 함수가 서로 다른 값을 반환합니다. 그게 어떻게 가능해?
몽고 문서의 크기를 얻는 다른 방법이 있습니까?
여기에서 테스트를 수행하는 몇 가지 코드를 제공합니다.
새 데이터베이스 'test'를 만들고 type : "auto"라는 속성 하나만있는 간단한 문서를 입력했습니다.
db.test.insert({type:"auto"})
stats () 함수 호출의 출력 : db.test.stats () :
{ "ns" : "test.test", "count" : 1, "size" : 40, "avgObjSize" : 40, "storageSize" : 4096, "numExtents" : 1, "nindexes" : 1, "lastExtentSize" : 4096, "paddingFactor" : 1, "systemFlags" : 1, "userFlags" : 0, "totalIndexSize" : 8176, "indexSizes" : { "_id_" : 8176 }, "ok" : 1
}
bsonsize 함수 호출의 출력 : Object.bsonsize (db.test.find ({test : "auto"}))
481