php小编柚子将为大家介绍如何使用go mongo-driver中的db.getUser()方法。在使用MongoDB数据库时,getUser()方法是一个非常实用的功能,可以用来获取指定用户的详细信息。通过本文的指导,您将学会如何正确使用这个方法,并获得所需的用户信息。阅读本文,让我们一起来探索这个有用的功能吧!
问题内容
我想使用 go 驱动程序获取数据库的用户详细信息。
例如。在 mongoshell 中
> db.getuser("testuser") null
我如何为此构建 bson.m 或 bson.d ?
我不想传递额外的参数,只是检索数据库的用户信息
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'
我在这里缺少什么?
解决方法
database.runcommand()
是为了方便调用mongodb的runcommand()
函数,即运行指定数据库命令的帮助器>.
也就是说,您在 mongo shell 中调用的 getuser()
函数是一个函数,而不是一个命令。
但是有一个 usersinfo
命令可以获取相同的数据。其语法为:
db.runcommand( { usersinfo: <various>, showcredentials: <boolean>, showcustomdata: <boolean>, showprivileges: <boolean>, showauthenticationrestrictions: <boolean>, filter: <document>, comment: <any> } )
这是执行 usersinfo
命令的方法:
var op bson.m cmd := bson.d{{key: "usersinfo", value: bson.m{ "user": "testuser", "db": "admin", }}} err = clientinfo.database(db).runcommand(ctx, cmd).decode(&op)
请注意,usersinfo
文档具有 各种规范,例如:
{ usersinfo: 1 }
返回有关运行该命令的数据库中的用户的信息。
mongosh
为该命令的调用提供 db.getusers()
帮助程序。
{ usersinfo: <username> }
返回有关运行该命令的数据库中存在的特定用户的信息。
mongosh
为该命令的调用提供 db.getuser()
帮助程序。
{ usersinfo: { user: <name>, db: <db> } }
返回有关由名称和数据库指定的用户的信息。
{ usersinfo: [ { user: <name>, db: <db> }, ... ] } { usersinfo: [ <username1>, ... ] }
返回有关指定用户的信息。
{ foralldbs: true }
返回有关所有数据库中用户的信息。
如您所见,getuser()
命令是 { usersinfo: <username> }</username>
命令是 { usersinfo: <username> }</username>
的简写,您可以这样调用:
var op bson.m cmd := bson.d{{key: "usersinfo", value: "testuser"}} err = clientinfo.database(db).runcommand(ctx, cmd).decode(&op)
如果您想要有关多个用户的信息,您当然可以使用数组:
cmd := bson.D{{Key: "usersInfo", Value: []string{"testuser", "anotheruser"}}}
以上是如何使用 go mongo-driver db.getUser()的详细内容。更多信息请关注PHP中文网其他相关文章!

Golang更适合高并发任务,而Python在灵活性上更有优势。1.Golang通过goroutine和channel高效处理并发。2.Python依赖threading和asyncio,受GIL影响,但提供多种并发方式。选择应基于具体需求。

Golang和C 在性能上的差异主要体现在内存管理、编译优化和运行时效率等方面。1)Golang的垃圾回收机制方便但可能影响性能,2)C 的手动内存管理和编译器优化在递归计算中表现更为高效。

selectgolangforhighpperformanceandcorrency,ifealforBackendServicesSandNetwork程序; selectpypypythonforrapiddevelopment,dataScience和machinelearningDuetoitsverserverserverserversator versator anderticality andextility andextentensivelibraries。

Golang和Python各有优势:Golang适合高性能和并发编程,Python适用于数据科学和Web开发。 Golang以其并发模型和高效性能着称,Python则以简洁语法和丰富库生态系统着称。

Golang和Python分别在哪些方面更易用和学习曲线更平缓?Golang更适合高并发和高性能需求,学习曲线对有C语言背景的开发者较平缓。Python更适合数据科学和快速原型设计,学习曲线对初学者非常平缓。

Golang和C 在性能竞赛中的表现各有优势:1)Golang适合高并发和快速开发,2)C 提供更高性能和细粒度控制。选择应基于项目需求和团队技术栈。

Golang适合快速开发和并发编程,而C 更适合需要极致性能和底层控制的项目。1)Golang的并发模型通过goroutine和channel简化并发编程。2)C 的模板编程提供泛型代码和性能优化。3)Golang的垃圾回收方便但可能影响性能,C 的内存管理复杂但控制精细。

GoimpactsdevelopmentPositationalityThroughSpeed,效率和模拟性。1)速度:gocompilesquicklyandrunseff,ifealforlargeprojects.2)效率:效率:ITScomprehenSevestAndArdArdArdArdArdArdArdArdArdArdArdArdArdArdArdArdArdArdArdArdArdArdArdArdArdArdArdArdArdArdArdArdArdArdArdArdArdArdArdArdEcceSteral Depentencies,增强开发的简单性:3)SimpleflovelmentIcties:3)简单性。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

Atom编辑器mac版下载
最流行的的开源编辑器

PhpStorm Mac 版本
最新(2018.2.1 )专业的PHP集成开发工具

禅工作室 13.0.1
功能强大的PHP集成开发环境

WebStorm Mac版
好用的JavaScript开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)