2014-02-11 2 views
0

나는 몽고에서 db의 모든 콜렉션을 볼 수있는 결과 세트를 얻는 좋은 방법이 있는지 알아 내려고하고 있습니다.간단한 몽고 쿼리로 콜렉션 통계 수집

나는 내가 관심 해요 storageSize 필드를 포함 콜렉션 당 통계 방법을 참조하십시오. 나는 밖으로 단일 쿼리의 컬렉션과 storageSizes을 좀하고 싶습니다 단지에서

db.col1.stats(); 
db.col2.stats(); 
db.col3.stats(); 

을하고 MySQL은 내가 할 노력하고있어의 equivalant 쿼리가

select table_schema, table_name, sum(data_length+index_length) from  
information_schema.tables group by 1,2; 

답변

1
var arr = db.getCollectionNames(); 
for (i=0; i < arr.length; i++) { 
    var comm = db.runCommand({ collStats: arr[i] , scale : 1024 }); 
    print (arr[i] + "\t" + comm.storageSize); 
    // or if you prefer json: 
    // printjson({"coll" : arr[i], "storage" : comm.storageSize}) 
} 

주 규모처럼 보일 수있다 (KB)