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

Cara menggunakan go mongo-driver db.getUser()

WBOY
WBOYke hadapan
2024-02-08 22:24:24825semak imbas

如何使用 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

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)

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

(CommandNotFound) no such command: 'getUser'

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>
   }
)

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)

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

{ usersinfo: 1 }

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

{ usersinfo: <username> }

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

{ usersinfo: { user: <name>, db: <db> } }

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

{ usersinfo: [ { user: <name>, db: <db> }, ... ] }
{ usersinfo: [ <username1>, ... ] }

Mengembalikan maklumat tentang pengguna yang dinyatakan.

{ foralldbs: true }

Mengembalikan maklumat tentang semua pengguna dalam pangkalan data.

Seperti yang anda lihat, perintah getuser() 命令是 { usersinfo: d6025a37ea8687b5422f951f7288bdc5 } adalah singkatan untuk { usersinfo: d6025a37ea8687b5422f951f7288bdc5 } 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)

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

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

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

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam