Maison  >  Article  >  développement back-end  >  Comment transmettre des documents BSON aux fonctions dans Go avec mgo ?

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

Barbara Streisand
Barbara Streisandoriginal
2024-11-21 13:22:11872parcourir

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
}

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)
}

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);

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!

Déclaration:
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