我想使用go驱动程序获取数据库的用户详细信息。
例如,在mongoshell中
> db.getUser("testuser")
null
我该如何构造一个bson. M或bson. D呢?
我不想传递额外的参数,只想检索数据库的userinfo
var op bson.M
command := bson.D{{"getUser", 1}, {"username", "testuser"}}
err = clientInfo.Database(db).RunCommand(context.TODO(), cmd).Decode(&op)
我尝试了类似上面的东西,但它返回以下错误:
(CommandNotFound) no such command: 'getUser'
我错过了什么?
1条答案
按热度按时间xdnvmnnf1#
Database.RunCommand()
是为了方便调用MongoDB的runCommand()
函数,即运行指定database commands的助手。也就是说,您在mongo shell中调用的
getUser()
函数是一个函数,而不是命令。但是有一个
usersInfo
命令可以得到同样的数据,它的语法是:以下是执行
usersInfo
命令的方法:请注意,
usersInfo
文档具有各种规范,例如:返回有关运行命令的数据库中的用户的信息。
mongosh
为此命令调用提供db.getUsers()
帮助器。返回有关运行命令的数据库中存在的特定用户的信息。
mongosh
为此命令调用提供db.getUser()
帮助器。返回有关由名称和数据库指定的用户的信息。
返回有关指定用户的信息。
返回有关所有数据库中用户的信息。
如您所见,
getUser()
命令是{ usersInfo: <username> }
的简写,您可以这样调用它:当然,如果需要多个用户的信息,可以使用数组: