Go Lang で BSON ドキュメントを渡す
Go では、MongoDB に接続し、mgo ライブラリを使用してデータを操作できます。 MongoDB にドキュメントを挿入するには、保存するデータを表す BSON ドキュメントを構築する必要があります。
BSON ドキュメントを別のパッケージ (例: dbEngine.go) の関数に渡すとき、次のような問題が発生する可能性があります。 Interface{} タイプを使用するとエラーが発生します。{}これは、mgo が特定の型が BSON ドキュメント構造にマップされることを期待しているためです。
BSON ドキュメントを手動で作成する代わりに、挿入するデータの形状を定義するために Go 構造体を使用することをお勧めします。たとえば、account.go では、次のような構造体を作成できます:
type Account struct { Id bson.ObjectId `bson:"_id"` BalanceAmount int // Other field }
その後、dbEngine.go で、Insert 関数を更新して、構造体へのポインタを受け入れることができます:
func Insert(document interface{}){ session, err := mgo.Dial("localhost") // check error c := session.DB("db_name").C("collection_name") err := c.Insert(document) }
最後に、構造体を使用して新しいアカウントを作成し、それをMongoDB:
acc := Account{} acc.Id = bson.NewObjectId() acc.BalanceAmount = 3 dbEngine.Insert(&acc);
構造体を使用すると、データが適切にフォーマットされ、MongoDB で必要な BSON ドキュメント構造と互換性があることが保証されます。
以上がmgo を使用して BSON ドキュメントを Go の関数に渡すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。