Gestion des collections MongoDB non structurées avec mGo
Pour les débutants en Go, il peut être déroutant de savoir comment travailler avec des collections MongoDB non structurées à l'aide de mGo. Contrairement à PHP, où les documents peuvent être affectés à des tableaux, mGo nécessite un marshaling de structures prédéfini pour interagir avec les collections.
Résoudre la disparité
Heureusement, il existe plusieurs approches pour gérer collections non structurées en Go avec mGo :
L'utilisation d'une map[string]interface{} (par exemple, bson.M) vous permet de stocker des paires clé-valeur de données non identifiées. Il fournit un accès direct aux valeurs clés sans nécessiter une structure prédéfinie.
var m bson.M err := collection.Find(nil).One(&m) check(err) for key, value := range m { fmt.Println(key, value) }
bson.D est un tranche qui maintient l’ordre des clés. Il est particulièrement utile pour préserver la séquence de clés telle que définie dans les index MongoDB.
var d bson.D err := collection.Find(nil).One(&d) check(err) for i, elem := range d { fmt.Println(elem.Name, elem.Value) }
Combinaison les avantages d'une structure et d'une map, les champs de map en ligne vous permettent de définir des champs spécifiques tout en laissant de la place à l'inconnu ceux.
type Person struct { ID bson.ObjectId `bson:"_id,omitempty"` Name string Phone string Extra bson.M `bson:",inline"` }
Avec ces techniques, vous pouvez manipuler sans effort les données structurées et non structurées dans les collections MongoDB.
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!