Maison > développement back-end > Golang > Comment utiliser go mongo-driver db.getUser()

Comment utiliser go mongo-driver db.getUser()

WBOY
Libérer: 2024-02-08 22:24:24
avant
875 Les gens l'ont consulté

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

L'éditeur PHP Youzi vous présentera comment utiliser la méthode db.getUser() dans go mongo-driver. Lors de l'utilisation de la base de données MongoDB, la méthode getUser() est une fonction très pratique qui peut être utilisée pour obtenir des informations détaillées sur un utilisateur spécifié. Grâce aux conseils de cet article, vous apprendrez à utiliser cette méthode correctement et à obtenir les informations utilisateur requises. Lisez cet article et explorons ensemble cette fonctionnalité utile !

Contenu de la question

Je souhaite obtenir les détails de l'utilisateur de la base de données à l'aide du pilote Go.

Par exemple. en mongoshell

> db.getuser("testuser")
null
Copier après la connexion

Comment puis-je créer bson.m ou bson.d pour cela ?

Je ne veux pas transmettre de paramètres supplémentaires, récupérez simplement les informations utilisateur de la base de données

var op bson.m
command := bson.d{{"getuser", 1}, {"username", "testuser"}}
err = clientinfo.database(db).runcommand(context.todo(), cmd).decode(&op)
Copier après la connexion

J'ai essayé quelque chose comme ci-dessus mais cela a renvoyé l'erreur suivante :

(CommandNotFound) no such command: 'getUser'
Copier après la connexion

Qu'est-ce qui me manque ici ? Fonction

Solution

database.runcommand() 是为了方便调用mongodb的runcommand(), c'est-à-dire exécuter la commande de base de données.

spécifiée

Autrement dit, la fonction getuser() que vous appelez dans le shell mongo est une fonction, pas une commande.

Mais il existe une commande usersinfo pour obtenir les mêmes données. Sa syntaxe est :

db.runcommand(
   {
     usersinfo: <various>,
     showcredentials: <boolean>,
     showcustomdata: <boolean>,
     showprivileges: <boolean>,
     showauthenticationrestrictions: <boolean>,
     filter: <document>,
     comment: <any>
   }
)
Copier après la connexion

Voici comment exécuter la commande 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)
Copier après la connexion

Veuillez noter que usersinfola documentation comporte diverses spécifications, par exemple :

{ usersinfo: 1 }
Copier après la connexion

Renvoie des informations sur l'utilisateur dans la base de données exécutant cette commande. mongosh 为该命令的调用提供 db.getusers() Aide.

{ usersinfo: &lt;username&gt; }
Copier après la connexion

Renvoie des informations sur l'utilisateur spécifique présent dans la base de données exécutant la commande. mongosh 为该命令的调用提供 db.getuser() Aide.

{ usersinfo: { user: <name>, db: <db> } }
Copier après la connexion

Renvoie des informations sur l'utilisateur spécifié par son nom et sa base de données.

{ usersinfo: [ { user: <name>, db: <db> }, ... ] }
{ usersinfo: [ <username1>, ... ] }
Copier après la connexion

Renvoie des informations sur l'utilisateur spécifié.

{ foralldbs: true }
Copier après la connexion

Renvoie des informations sur tous les utilisateurs de la base de données.

Comme vous pouvez le voir, la commande getuser() 命令是 { usersinfo: &lt;username&gt; } est l'abréviation de {usersinfo: <username> et vous pouvez l'appeler comme ceci :

var op bson.m
cmd := bson.d{{key: "usersinfo", value: "testuser"}}
err = clientinfo.database(db).runcommand(ctx, cmd).decode(&op)
Copier après la connexion

Si vous souhaitez des informations sur plusieurs utilisateurs, vous pouvez bien sûr utiliser un tableau :

cmd := bson.D{{Key: "usersInfo", Value: []string{"testuser", "anotheruser"}}}
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:stackoverflow.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal