Rumah > pembangunan bahagian belakang > Golang > Cara menggunakan go mongo-driver db.getUser()

Cara menggunakan go mongo-driver db.getUser()

WBOY
Lepaskan: 2024-02-08 22:24:24
ke hadapan
875 orang telah melayarinya

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

PHP editor Youzi akan memperkenalkan kepada anda cara menggunakan kaedah db.getUser() dalam go mongo-driver. Apabila menggunakan pangkalan data MongoDB, kaedah getUser() ialah fungsi yang sangat praktikal yang boleh digunakan untuk mendapatkan maklumat terperinci pengguna tertentu. Melalui panduan artikel ini, anda akan belajar cara menggunakan kaedah ini dengan betul dan mendapatkan maklumat pengguna yang diperlukan. Baca artikel ini dan mari kita terokai ciri berguna ini bersama-sama!

Kandungan soalan

Saya ingin mendapatkan butiran pengguna daripada pangkalan data menggunakan pemacu go.

Sebagai contoh. dalam mongoshell

> db.getuser("testuser")
null
Salin selepas log masuk

Bagaimana saya membina bson.m atau bson.d untuk ini?

Saya tidak mahu lulus parameter tambahan, cuma dapatkan maklumat pengguna daripada pangkalan data

var op bson.m
command := bson.d{{"getuser", 1}, {"username", "testuser"}}
err = clientinfo.database(db).runcommand(context.todo(), cmd).decode(&op)
Salin selepas log masuk

Saya mencuba sesuatu seperti di atas tetapi ia mengembalikan ralat berikut:

(CommandNotFound) no such command: 'getUser'
Salin selepas log masuk

Apa yang saya hilang di sini? Fungsi

Penyelesaian

database.runcommand() 是为了方便调用mongodb的runcommand(), iaitu, jalankan arahan pangkalan data yang ditentukan.

Iaitu, fungsi getuser() yang anda panggil dalam cangkerang mongo ialah fungsi, bukan perintah.

Tetapi ada arahan usersinfo untuk mendapatkan data yang sama. Sintaksnya ialah:

db.runcommand(
   {
     usersinfo: <various>,
     showcredentials: <boolean>,
     showcustomdata: <boolean>,
     showprivileges: <boolean>,
     showauthenticationrestrictions: <boolean>,
     filter: <document>,
     comment: <any>
   }
)
Salin selepas log masuk

Ini adalah cara untuk melaksanakan arahan 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)
Salin selepas log masuk

Sila ambil perhatian bahawa usersinfo dokumentasi mempunyai pelbagai spesifikasi, contohnya:

{ usersinfo: 1 }
Salin selepas log masuk

Mengembalikan maklumat tentang pengguna dalam pangkalan data yang menjalankan arahan ini. mongosh 为该命令的调用提供 db.getusers() Pembantu.

{ usersinfo: &lt;username&gt; }
Salin selepas log masuk

Mengembalikan maklumat tentang pengguna tertentu yang terdapat dalam pangkalan data yang menjalankan arahan. mongosh 为该命令的调用提供 db.getuser() Pembantu.

{ usersinfo: { user: <name>, db: <db> } }
Salin selepas log masuk

Mengembalikan maklumat tentang pengguna yang dinyatakan mengikut nama dan pangkalan data.

{ usersinfo: [ { user: <name>, db: <db> }, ... ] }
{ usersinfo: [ <username1>, ... ] }
Salin selepas log masuk

Mengembalikan maklumat tentang pengguna yang dinyatakan.

{ foralldbs: true }
Salin selepas log masuk

Mengembalikan maklumat tentang semua pengguna dalam pangkalan data.

Seperti yang anda lihat, perintah getuser() 命令是 { usersinfo: &lt;username&gt; } adalah singkatan untuk { usersinfo: &lt;username&gt; } dan anda boleh memanggilnya seperti ini:

var op bson.m
cmd := bson.d{{key: "usersinfo", value: "testuser"}}
err = clientinfo.database(db).runcommand(ctx, cmd).decode(&op)
Salin selepas log masuk

Jika anda mahukan maklumat tentang berbilang pengguna, anda sudah tentu boleh menggunakan tatasusunan:

cmd := bson.D{{Key: "usersInfo", Value: []string{"testuser", "anotheruser"}}}
Salin selepas log masuk

Atas ialah kandungan terperinci Cara menggunakan go mongo-driver db.getUser(). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:stackoverflow.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan