Objets vides dans les requêtes Golang mgo
Dans le code fourni, lors de l'interrogation de MongoDB pour un utilisateur spécifique avec col.Find(bson.M {"user": username}).One(&user), la structure utilisateur est initialisée comme un objet vide. Cela se produit car les champs de la structure des utilisateurs ne sont pas exportés, ce qui conduit le package mgo à les ignorer.
Résolution à l'aide des champs exportés
Pour résoudre ce problème, vous besoin d'exporter les champs de la structure des utilisateurs. Par défaut, les noms de champs sont utilisés lors de l'accès aux champs depuis MongoDB. Cependant, vous pouvez utiliser des balises pour spécifier des mappages de champs personnalisés.
Voici la structure modifiée avec les champs et les balises exportés :
type users struct { User string `bson:"user" json:"user"` Data string `bson:"data" json:"data"` }
Maintenant, les champs de la structure des utilisateurs sont correctement exportés et les requêtes renverront les résultats attendus.
Notes supplémentaires sur BSON et JSON Balises :
Les balises bson et json sont utilisées pour spécifier comment les champs de structure Go sont mappés aux documents MongoDB et aux données JSON, respectivement. La balise bson spécifie le nom du champ dans un document BSON et la balise json spécifie le nom du champ dans les données JSON.
Si vous ne spécifiez pas de balise, le nom du champ dans la structure sera utilisé par défaut. Cependant, l'utilisation de balises vous permet de personnaliser les noms de champs pour des raisons de compatibilité avec d'autres systèmes ou conventions.
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!