首頁 > 後端開發 > Golang > 主體

如何使用 go mongo-driver db.getUser()

WBOY
發布: 2024-02-08 22:24:24
轉載
824 人瀏覽過

如何使用 go mongo-driver db.getUser()

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.runco​​mmand() 是為了方便呼叫mongodb的runco​​mmand()# 函數,即執行指定資料庫指令.

也就是說,您在 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: &lt;username&gt; }
登入後複製

傳回有關執行該命令的資料庫中存在的特定使用者的資訊。 mongosh 為此指令的呼叫提供 db.getuser() 幫助程式。

{ usersinfo: { user: <name>, db: <db> } }
登入後複製

傳回有關由名稱和資料庫指定的使用者的資訊。

{ usersinfo: [ { user: <name>, db: <db> }, ... ] }
{ usersinfo: [ <username1>, ... ] }
登入後複製

傳回指定使用者的資訊。

{ foralldbs: true }
登入後複製

傳回有關所有資料庫中使用者的資訊。

如您所見,getuser() 指令是 { usersinfo: &lt;username&gt; } 的簡寫,您可以這樣呼叫:

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中文網其他相關文章!

來源:stackoverflow.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!