You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过编程获取Mongo Atlas集群的当前及最大逻辑容量?

获取MongoDB Atlas集群容量使用情况的正确方式

为什么listDatabases()的数值不对?

你用client.db("admin").admin().listDatabases()拿到的totalSize/totalSizeMb,是MongoDB实例层面统计的所有数据库数据+索引的总字节数,而Atlas控制台显示的是集群层面的存储使用,包含了数据、索引、备份快照、系统日志、元数据等Atlas层面的开销,统计维度完全不同,所以数值没法对应。

两种可行方案

1. 轻量调用Atlas Administration API

别觉得API大材小用,只需要调用一个简单的端点就能拿到准确数据:

  • 生成一个仅带clusterRead权限的API密钥,权限最小化,安全可控。
  • 调用GET /groups/{groupId}/clusters/{clusterName}接口,返回结果里的diskSizeGB是集群总容量,usedDiskSizeGB是已使用容量,转成MB就能直接生成“200 / 512 MB”这种格式。
  • 整个请求逻辑几行代码就能实现,完全不复杂。

2. 手动配置配额+驱动获取使用量

如果不想碰API,可以这么做:

  • 先在Atlas控制台找到集群的总配额(比如512MB),把这个值写到应用配置里(不用硬编码,方便后续修改)。
  • 通过驱动执行命令:client.db("admin").admin().command({ dbStats: 1, scale: 1048576 }),这里scale设为1024*1024,返回的dataSize+indexSize就是实际使用的MB数。

注意:这个方法的已使用数值和Atlas控制台会有细微差异,因为没算Atlas的系统开销,但用来做容量预警完全够用。

内容的提问来源于stack exchange,提问作者Sleipnir

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 11:37:11