如何获取MongoDB中所有数据库的记录总数?

时间:2016-09-30 07:42:58

标签: mongodb

有什么方法可以让我在 MongoDB 服务器中获取所有数据库的总记录数。

有命令可以在特定的数据库集合中查找总记录。但我希望获得所有数据库中记录总数的计数。

3 个答案:

答案 0 :(得分:5)

只需使用db.stats

即可
db.stats().objects

objects属性返回所有集合中数据库中文档的数量。

要获取所有数据库的总数,您可能需要执行以下操作:

let client = db.getMongo();
client.getDBNames().filter( name => name !== 'local')
    .map( elt => client.getDB(elt).stats().objects )
    .reduce( ( acc, cur ) => acc + cur, 0);

答案 1 :(得分:0)

可以使用此

var alldbs = db.getMongo().getDBNames();
for(var j = 0; j < alldbs.length; j++)
{
    var db = db.getSiblingDB(alldbs[j]);
    var collections = db.getCollectionNames();
    for(var i = 0; i < collections.length; i++){
      var name = collections[i];
      if(name.substr(0, 6) != 'system'){
          var c = db.getCollection(name).count() ;
          print(db + '  ' + name + '    ' + c );
      }
    }
}

答案 2 :(得分:-2)

您可以使用这个简单的python脚本

from pymongo import MongoClient

client = MongoClient()
cot = 0
db_list = client.database_names()
for item in db_list:
    db = client[item]
    col = db.collection_names()
    try:
        num = db[col[0]].count()
    except Exception:
        num = 0
    cot += int(num)

print('\t' + str(cot))