【问题标题】:How to get databases names from listDatabases in mongodb?如何从 mongodb 中的 listDatabases 获取数据库名称?
【发布时间】:2018-01-15 12:06:49
【问题描述】:

我在 mongodb 的变量中从下面的查询中获取对象

     $dbases = $this->connection->listDatabases(); 

     var_dump($dbases);       

喜欢

        object(MongoDB\Model\DatabaseInfoLegacyIterator)#10 (1) { ["databases":"MongoDB\Model\DatabaseInfoLegacyIterator":private]=> array(5) { [0]=> array(3) { ["name"]=> string(3) "MGL" ["sizeOnDisk"]=> float(3596288) ["empty"]=> bool(false) } [1]=> array(3) { ["name"]=> string(10) "SiteStatus" ["sizeOnDisk"]=> float(32768) ["empty"]=> bool(false) } [2]=> array(3) { ["name"]=> string(5) "admin" ["sizeOnDisk"]=> float(32768) ["empty"]=> bool(false) } [3]=> array(3) { ["name"]=> string(6) "config" ["sizeOnDisk"]=> float(12288) ["empty"]=> bool(false) } [4]=> array(3) { ["name"]=> string(5) "local" ["sizeOnDisk"]=> float(73728) ["empty"]=> bool(false) } } } 

我只想从这个对象中提取像 MGL,SiteStatus 这样的数据库名称。 请帮助我通过 php 代码提取它们。我试过了

            foreach ($dbases['databases'] as $dbs) 
            {    
                $dbname = $dbs['name'];                              
            }

它不工作。请帮忙!!!

【问题讨论】:

  • 试试foreach ($dbases->databases as $dbs)
  • 无法访问私有属性 MongoDB\Model\DatabaseInfoLegacyIterator::$databases i

标签: php mongodb-php php-mongodb


【解决方案1】:

您可以尝试迭代迭代器,如下所示:

foreach($this->connection->listDatabases() as $database)
{
    echo $database->getName();
}

每个$database 都是MongoDB\Model\DatabaseInfo 类的对象,它有一个方法getName()

【讨论】:

    猜你喜欢
    • 2014-03-29
    • 1970-01-01
    • 2011-10-30
    • 1970-01-01
    • 1970-01-01
    • 2018-10-12
    • 2015-11-23
    • 2011-06-04
    • 2012-03-08
    相关资源
    最近更新 更多