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

如何通过\MongoDB\Driver\Manager实例列出数据库?

通过MongoDB\Driver\Manager列出数据库

直接使用MongoDB\Driver\Manager执行listDatabases数据库命令即可,这也是MongoDB\Client::listDatabases()底层的实现逻辑。具体步骤如下:

  • 如果你还没有Manager实例,先初始化(你已经在使用该类管理连接可跳过这一步):

    $manager = new MongoDB\Driver\Manager('mongodb://localhost:27017');
    
  • 构造listDatabases命令:

    $command = new MongoDB\Driver\Command(['listDatabases' => 1]);
    
  • 在admin数据库上执行该命令(listDatabases属于全局管理命令,必须在admin库执行):

    try {
        $cursor = $manager->executeCommand('admin', $command);
        // 将游标转换为数组,提取数据库列表
        $result = $cursor->toArray();
        $databases = $result[0]['databases'];
    
        // 遍历输出数据库信息
        foreach ($databases as $db) {
            echo "数据库名:{$db['name']},磁盘占用:{$db['sizeOnDisk']}字节\n";
        }
    } catch (MongoDB\Driver\Exception\Exception $e) {
        die("执行命令失败:{$e->getMessage()}");
    }
    

补充说明

返回的$databases数组中,每个元素包含数据库的核心信息,常用字段包括:

  • name:数据库名称
  • sizeOnDisk:数据库占用的磁盘空间(字节)
  • empty:标记数据库是否为空(布尔值)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 19:15:52