我从互联网上获得了此代码。
我不知道怎么回事$databases = current($res->toArray());
正在使用代码。我是MongoDB和PHP的新手。 current
函数如何能够检索所有值?究竟executeCommand
检索到了什么?
$mng = new MongoDB\Driver\Manager("mongodb://localhost:27017");
$listdatabases = new MongoDB\Driver\Command(["listDatabases" => 1]);
$res = $mng->executeCommand("admin", $listdatabases);
$databases = current($res->toArray());
foreach ($databases->databases as $el) {
echo $el->name . "\n";
}
答案 0 :(得分:1)
$res = $mng->executeCommand("admin", $listdatabases);
执行listDatabases
command并将结果分配给$res
。结果是Cursor对象,其具有toArray
方法。
一些$res->toArray()
的结果,毫不奇怪,是一个数组。它的第一个元素是一个包含数据库列表的对象。
现在,current
不是MongoDB特有的功能。它是一个标准的PHP函数,它返回数组的当前元素。由于刚刚创建了数组,因此当前元素是第一个元素,即包含数据库列表的对象。
因此,$databases = current($res->toArray());
会为您提供一个对象($databases
),该对象具有属性databases
,其中包含可以使用foreach
进行迭代的数据库对象数组。