我想收集MongoDB实例看到的数据库的名称。我正在努力使用以下内容:
Thread Safety enabled in PHP7
PHP 7.0.2 (cli) (built: Jan 6 2016 13:00:05) ( ZTS )
MongoDB shell version: 3.2.1
MongoDB PHP Library 1.0
在下面的代码中,我可以看到数据库及其属性的列表,但是当foreach循环进行时,我无法收集数据库的名称。我尝试过各种变体:
$databaseInfo->name;
$databaseInfo->[‘name’];
我不知道如何指向我要收集的此数据库对象中的name字段。这是代码:
<body>
<h1>Count and Name the databases!</h1>
<?php
// Bring in personal tools.
include_once 'utilities/tools.php';
// This path should point to Composer's autoloader
require_once __DIR__ . "/vendor/autoload.php";
// Find if we can connect to a Mongo instance
$client = new MongoDB\Client;
if ($client) {
echo (breakLeft("Made a connection"));
}
echo (breakLeft('$client = '));
var_dump($client);
echo (rowDivider());
// Find all the Databasses on this Mongo instance
// Count databases
$i = 0;
/* listDatabases() returns an iterator/or cursor of MongoDB\Model\DatabaseInfo objects */
foreach ($client->listDatabases() as $databaseInfo) {
echo(breakLeft("database count = " . ($i + 1)));
var_dump($databaseInfo);
$i++;
}
echo (breakLeftRight("Total count of database = " . $i));
?>
</body>
这是对象的样子?
database count = 1
C:\NetBeansWorkPlace\mongoDB_overview\mongoGateway.php:39:
object(MongoDB\Model\DatabaseInfo)[4]
public 'name' => string 'databaseName' (length=12)
public 'sizeOnDisk' => float 83886080
public 'empty' => boolean false
database count = 2
C:\NetBeansWorkPlace\mongoDB_overview\mongoGateway.php:39:
object(MongoDB\Model\DatabaseInfo)[7]
public 'name' => string 'db' (length=2)
public 'sizeOnDisk' => float 83886080
public 'empty' => boolean false
谢谢!