Vous pouvez utiliser une carte générique, par exemple :
var result map[string]interface{}
err := collection.Find(query).One(&result)
Vous trouverez des personnes utilisant bson.M
, qui est également une carte avec ce même type sous-jacent. Il n'y a rien de spécial à propos de bson.M
, pourtant. C'est juste un nom court et pratique pour une carte. Vous pouvez créer votre propre nom pratique ou utiliser une carte simple comme dans l'exemple ci-dessus.
Une autre façon d'accéder aux documents sans schéma défini consiste à utiliser bson.D
à la place du type de carte ci-dessus. bson.D
est plus utile lorsque l'ordre des éléments dans le document est pertinent, ou si vous souhaitez réduire légèrement la surcharge de l'opération (les cartes sont un peu plus coûteuses à gérer en raison de leur nature). Le bson.D
type est une tranche de valeurs de structure avec des paires clé/valeur. Contrairement à bson.M
, bson.D
est spécial et est géré en interne par le paquet mgo/bson.