PHP中的MongoDb:db.getUser()

PHP中的MongoDb:db.getUser(),php,mongodb,Php,Mongodb,我目前正在用PHP编写一个连接到MongoDB数据库的应用程序 我已经成功地使用我设置的MongoDB数据库中的dbAdmin角色对用户进行了身份验证,并且创建了一个用户“TestUser”,在作为dbAdmin用户进行身份验证时,我不想获取任何角色的信息。但是,我不知道如何从PHP运行“db.getUser()”命令 我的理解是,我应该能够使用“MongoDB::command()”方法直接运行任何实际的MongoDB命令,但是,下面的代码 $mongo = new MongoClient("

我目前正在用PHP编写一个连接到MongoDB数据库的应用程序

我已经成功地使用我设置的MongoDB数据库中的dbAdmin角色对用户进行了身份验证,并且创建了一个用户“TestUser”,在作为dbAdmin用户进行身份验证时,我不想获取任何角色的信息。但是,我不知道如何从PHP运行“db.getUser()”命令

我的理解是,我应该能够使用“MongoDB::command()”方法直接运行任何实际的MongoDB命令,但是,下面的代码

$mongo = new MongoClient("localhost:27017");
$mongoDb = $mongo->{'test'}
$mongoDb->authenticate($username, $password); //This returns a successful response of array('ok' => 1)
print_r($mongoDb->command(array("getUser" => "TestUser")));
生成此响应:-

(
    [ok] => 0
    [errmsg] => no such command: getUser
    [code] => 59
    [bad cmd] => stdClass Object
        (
            [getUser] => TestUser
        )
)

“getUser”是MongoDB中数据库的一个命令,对吗?如果是这样的话,我为什么会得到这个响应,我如何构造一个正确的语句,以便能够从PHP中的MongoDB中获取有关用户的信息?

我通过使用获取数据库可用的所有可能方法的列表,进一步研究了这个问题

$mongoDb->command(array("listCommands" => 1));
这告诉我,“getUser”显然不是现有的命令。我不确定为什么不,我想这是因为它是一个用户管理命令,而不是一个典型的数据库命令

无论如何,“usersInfo”是一个可用的命令。通过执行以下操作

$mongoDb->command(array("usersInfo" => array("user" => $username, "db" => $database)));

我能够得到我想要的用户的数据,所以我想这回答了我的问题。希望这能帮助其他遇到同样问题的人尝试使用MongoDb安装PHP应用程序。

我通过使用获取数据库可用的所有可能方法的列表,了解了更多信息

$mongoDb->command(array("listCommands" => 1));
这告诉我,“getUser”显然不是现有的命令。我不确定为什么不,我想这是因为它是一个用户管理命令,而不是一个典型的数据库命令

无论如何,“usersInfo”是一个可用的命令。通过执行以下操作

$mongoDb->command(array("usersInfo" => array("user" => $username, "db" => $database)));
我能够得到我想要的用户的数据,所以我想这回答了我的问题。希望这能帮助其他遇到同样问题的人使用MongoDb安装PHP应用程序