Maison >développement back-end >Golang >Pourquoi est-ce que j'obtiens des objets vides lorsque j'interroge MongoDB avec Go ?

Pourquoi est-ce que j'obtiens des objets vides lorsque j'interroge MongoDB avec Go ?

DDD
DDDoriginal
2024-12-11 18:52:11529parcourir

Why Am I Getting Empty Objects When Querying MongoDB with Go?

Objets vides dans les requêtes MongoDB avec Go

Lors de l'apprentissage du développement de l'API Go, vous pouvez rencontrer des problèmes pour récupérer des données de MongoDB à l'aide du package mgo. L'un de ces problèmes consiste à obtenir des objets vides lors de l'exécution de requêtes. Pour résoudre ce problème, il est essentiel de comprendre l'utilisation des balises BSON et JSON dans la structure Go.

Dans votre code fourni, le problème survient car les champs de la structure des utilisateurs ne sont ni exportés ni balisés. Par conséquent, ils sont ignorés par le package mgo. Pour résoudre ce problème, vous devez exporter les champs en mettant les premières lettres en majuscule, comme :

type Users struct {
    User string `bson:"user" json:"user"`
    Data string `bson:"data" json:"data"` 
}

Par défaut, le nom du champ est supposé lors de la transformation des valeurs de structure vers/depuis MongoDB. Cependant, les balises vous permettent de mapper des champs à des noms spécifiques pour la sérialisation et la récupération. Dans ce cas, vous avez défini des balises pour correspondre aux noms de champs BSON et JSON.

Après ces modifications, votre code récupérera avec succès les objets non vides de la collection MongoDB. La ligne d'impression affichera les données utilisateur correctes et le nombre de messages dans la collection.

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