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

Comment utiliser go mongo-driver db.getUser()

WBOY
WBOYavant
2024-02-08 22:24:24868parcourir

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

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)

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

(CommandNotFound) no such command: 'getUser'

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

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)

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

{ usersinfo: 1 }

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

{ usersinfo: <username> }

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

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

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

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

{ foralldbs: true }

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

Comme vous pouvez le voir, la commande getuser() 命令是 { usersinfo: d6025a37ea8687b5422f951f7288bdc5 } est l'abréviation de {usersinfo: d6025a37ea8687b5422f951f7288bdc5 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)

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

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer