Maison > développement back-end > Golang > le corps du texte

Comment transmettre des documents BSON aux fonctions dans Go avec mgo ?

Barbara Streisand
Libérer: 2024-11-21 13:22:11
original
874 Les gens l'ont consulté

How to Pass BSON Documents to Functions in Go with mgo?

Transmission de documents BSON dans Go Lang

Dans Go, vous pouvez vous connecter à MongoDB et manipuler des données à l'aide de la bibliothèque mgo. Pour insérer des documents dans MongoDB, vous devez construire des documents BSON, qui représentent les données que vous souhaitez stocker.

Lorsque vous transmettez un document BSON à une fonction dans un autre package (par exemple, dbEngine.go), vous pouvez rencontrer une erreur lors de l'utilisation du type interface{}. En effet, mgo s'attend à ce qu'un type spécifique soit mappé à la structure du document BSON.

Au lieu de créer des documents BSON manuellement, il est recommandé d'utiliser une structure Go pour définir la forme des données que vous souhaitez insérer. Par exemple, dans account.go, vous pouvez créer une structure comme :

type Account struct {
  Id bson.ObjectId `bson:"_id"`
  BalanceAmount int
  // Other field
}
Copier après la connexion

Ensuite, dans dbEngine.go, vous pouvez mettre à jour votre fonction Insert pour accepter un pointeur vers la structure :

func Insert(document interface{}){
  session, err := mgo.Dial("localhost")
  // check error
  c := session.DB("db_name").C("collection_name")
  err := c.Insert(document)
}
Copier après la connexion

Enfin, vous pouvez utiliser la structure pour créer un nouveau compte et l'insérer dans MongoDB :

acc := Account{}
acc.Id = bson.NewObjectId()
acc.BalanceAmount = 3

dbEngine.Insert(&acc);
Copier après la connexion

Par en utilisant une structure, vous vous assurez que les données sont correctement formatées et compatibles avec la structure du document BSON requise par 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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal