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

问题描述:

有没有什么办法通过我可以在MongoDB服务器上的所有数据库中获得记录总数。如何获取MongoDB中所有数据库的记录总数?

有一个命令用于查找特定数据库集合中的总记录。但我想要获得所有数据库中记录总数的计数。

只需使用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); 

你可以使用这个简单的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))