MongoDB服務端JavaScript指令碼使用方法

chenfeng發表於2017-03-22
常用JavaScript語句

db.getSiblingDB(<dbname>)   
db.getCollectionNames()    
db.getCollection(<collname>)    
db.printCollectionStats()
在mongo shell執行JavaScript指令碼

切換資料庫:  
use <dbname>
執行如下指令碼:

var total = 0;
var dbaStatCollections = function(){};
 
dbaStatCollections = function(){
  collNames = db.getCollectionNames();
  for (var index = 0; index < collNames.length; index++) {
    var coll = db.getCollection(collNames[index]); 
    var stats = coll.stats();
    print('ns,count,size,totalIndexSize');
  print(stats.ns + ',' + stats.count + ',' + stats.size + ',' + stats.totalIndexSize);
  }
}
 
dbaStatCollections();
可將上述指令碼儲存為dbaStatCollections.js, 


在linux shell下執行  

mongo localhost:27017/<dbname> dbaStatCollections.js
或在mongo shell下執行    

load("dbaStatCollections.js")
在服務端儲存JavaScript函式

db.system.js.remove({"_id":"dbaStatCollections"});
 
db.system.js.save(   
{
  _id : "dbaStatCollections" ,
  value : function () {
    collNames = db.getCollectionNames();
    for (var index = 0; index < collNames.length; index++) {
      var coll = db.getCollection(collNames[index]);
      var stats = coll.stats();
      print('ns,count,size,totalIndexSize');
      print(stats.ns + ',' + stats.count + ',' + stats.size + ',' + stats.totalIndexSize);
    }
  }
}
);
 
db.loadServerScripts();
 
dbaStatCollections();
在當前JavaScript上下文中,可以使用該函式。退出該會話後,該函式不會被儲存。只可在Primary執行。


備註:以上輸出結果儲存為CSV檔案開啟。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15498/viewspace-2135804/,如需轉載,請註明出處,否則將追究法律責任。

相關文章