標籤:mongodb javascript scripting
MongoDB服務端JavaScript指令碼
常用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檔案開啟。
本文出自 “SQL Server Deep Dives” 部落格,請務必保留此出處http://ultrasql.blog.51cto.com/9591438/1705153
MongoDB服務端JavaScript指令碼