2014-06-17 64 views
0

我開始了我的MongoDB的旅程與後續問題:列表數據庫,收集和在批處理模式下的文件數量

  1. 如何列出所有的MongoDB數據庫?
  2. 如何列出特定數據庫中的所有集合?
  3. 如何列出特定集合中的文檔數量?

我找到的答案如下:

  1. 顯示DBS
  2. 使用<db name>
    秀收藏
  3. 使用<db name>
    分貝。 <collection name> .count()

以上所有命令都是在MongoDB shell中手動運行的。我想找到一種方法來在批處理模式下運行這些命令,並得到如下格式的結果:

是否有人想分享實現它的任何想法? 任何特定的片段將不勝感激。

回答

0

那麼你基本上可以只創建一個JavaScript文件,並通過蒙戈外殼,如果你想運行它:

var db = db.getSiblingDB("admin"); 

var output = []; 
db.runCommand({ listDatabases: 1 }).databases.map(
    function(x){ return x.name } 
).forEach(function(dbname) { 
    var cdb = db.getSiblingDB(dbname); 
    cdb.getCollectionNames().forEach(function(coll) { 
    var count = cdb.getCollection(coll).count(); 
    output.push({ 
     db: cdb, 
     collection: coll, 
     count: count 
    }); 
    }) 
}); 

printjson(output); 

然後就是調用它。我所謂的文件「lister.js」:

mongo lister.js 

所以,你可以使用print()printjson()方法,這些方法適用於shell產生要如何輸出。

否則請諮詢您最喜歡的腳本語言的MongoDB驅動程序,並按照上面顯示的內容執行某些操作。所有的基本方法和原則將可用。

相關問題