Gestion des collections MongoDB non structurées dans Go avec mgo
Lors de l'interrogation d'une collection dans MongoDB avec mgo, il est possible de prédéfinir les données qui seront être renvoyé dans une structure, comme démontré avec l'exemple de structure Person fourni. Cependant, il peut y avoir des scénarios dans lesquels les documents de la collection ont un ensemble de clés variable.
Comment gérer les collections non structurées dans Go / mgo
Il existe plusieurs façons pour gérer les collections non structurées dans Go/mgo :
Utiliser un map :
En utilisant un type bson.M, qui est une map[string]interface{}, vous pouvez stocker les données du document directement sans définir de structure spécifique.
var m bson.M err := collection.Find(nil).One(&m) check(err) for key, value := range m { fmt.Println(key, value) }
Utilisation d'une tranche de document :
bson.D est un type de tranche qui préserve l'ordre des clés et fournit un mécanisme efficace pour la gestion des documents.
var d bson.D err := collection.Find(nil).One(&d) check(err) for i, elem := range d { fmt.Println(elem.Name, elem.Value) }
Utilisation d'un champ de carte en ligne :
En utilisant l'indicateur bson en ligne dans un champ de carte dans une structure, vous pouvez combiner le commodité d'utiliser une structure avec la flexibilité de gérer des champs inconnus.
type Person struct { ID bson.ObjectId `bson:"_id,omitempty"` Name string Phone string Extra bson.M `bson:",inline"` }
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!