Vide ou n'est pas nécessaire struct champs de golang

Je suis un peu nouveau pour tapé des langues comme l'Aller et suis en train d'apprendre les meilleures façons de mettre en œuvre des choses.

J'ai deux structures qui représentent des modèles qui seront insérées dans une base de données mongodb. Un struct (Investissement) a l'autre struct (Groupe) comme l'un de ses champs.

type Group struct {
    Base
    Name string `json:"name" bson"name"`
}

type Investment struct {
    Base
    Symbol string `json:"symbol" bson:"symbol" binding:"required"`
    Group  Group  `json:"group" bson:"group"`
    Fields bson.M `json:"fields" bson:"fields"`
}

Le problème, je vais avoir, c'est que, dans le modèle d'Investissement, le Groupe n'est pas nécessaire. Si il n'y a pas de groupe, je pense que c'est mieux pour elle de ne pas être insérées dans la base de données. Quel est le meilleur moyen de gérer une base de modèle en Aller?

Ce n'est pas mon domaine d'expertise, mais vous souhaitez peut-être enquêter sur json.Marshaler golang.org/pkg/encoding/json/#Marshaler il permet de définir Marshaling personnalisé de comportement pour le json, ce qui devrait (avec un peu d'effort) vous permettent de ne pas écrire un champ en fonction d'une certaine logique.
Struct tags: json: "omitempty" devrait faire l'affaire, à partir de la mémoire.

OriginalL'auteur msecret | 2014-06-14