有什么方法可以让我在 MongoDB 服务器中获取所有数据库的总记录数。
有命令可以在特定的数据库集合中查找总记录。但我希望获得所有数据库中记录总数的计数。
答案 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))