2014-06-17 16 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驱动程序,并按照上面显示的内容执行某些操作。所有的基本方法和原则将可用。

相关问题