Maison > développement back-end > Golang > Comment construire et transmettre des documents BSON dans Go pour MongoDB ?

Comment construire et transmettre des documents BSON dans Go pour MongoDB ?

Barbara Streisand
Libérer: 2024-11-17 06:47:03
original
325 Les gens l'ont consulté

How to Construct and Pass BSON Documents in Go for MongoDB?

Construire et transmettre des documents BSON dans Go avec MongoDB

Dans votre application Go, vous rencontrez un problème où les tentatives d'insertion d'un document BSON à l'aide la fonction Insert(interface{}) dans dbEngine.go génère l'erreur : "panique : impossible de marshaler l'interface {} en tant que BSON document."

Pour résoudre ce problème, il est important de comprendre que dans Go, vous n'avez pas besoin de créer et de transmettre manuellement des documents BSON. Au lieu de cela, vous pouvez utiliser la fonctionnalité de marshaling MongoDB BSON, qui convertit automatiquement les structures Go en documents BSON.

Pour implémenter cela, créez une structure dans account.go pour représenter le document que vous souhaitez insérer, par exemple :

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

Dans votre dbEngine.go, mettez à jour la fonction Insert comme suit :

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

Enfin, dans l'application principale, instanciez une structure Account, définissez ses champs et transmettez-la à la fonction Insert :

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

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

En suivant ces étapes, vous pouvez simplifier le processus de gestion des documents BSON et éviter l'erreur que vous étiez rencontre.

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