MongoDB を使用した Go での BSON ドキュメントの構築と受け渡し
Go アプリケーションで、次を使用して BSON ドキュメントを挿入しようとすると問題が発生します。 dbEngine.go の Insert(interface{}) 関数により、「パニック: インターフェース {} を BSON ドキュメントとしてマーシャリングできません。」というエラーが発生します。
この問題を解決するには、次のことを理解することが重要です。 BSON ドキュメントを手動で作成して渡す必要はありません。代わりに、Go 構造体を BSON ドキュメントに自動的に変換する MongoDB BSON マーシャリング機能を利用できます。
これを実装するには、挿入するドキュメントを表す構造体を account.go に作成します。次に例を示します。
type Account struct { Id bson.ObjectId `bson:"_id"` BalanceAmount int }
dbEngine.go で、Insert 関数を次のように更新します。
func Insert(document interface{}){ session, err := mgo.Dial("localhost") // error handling c := session.DB("db_name").C("collection_name") err = c.Insert(document) }
最後に、メイン アプリケーションで、Account 構造体をインスタンス化し、そのフィールドを設定して、それを に渡します。挿入機能:
acc := Account{} acc.Id = bson.NewObjectId() acc.BalanceAmount = 3 dbEngine.Insert(&acc);
次の手順に従うことで、BSON ドキュメントの処理プロセスを簡素化し、発生したエラーを回避できます。
以上がGo for MongoDB で BSON ドキュメントを構築して渡す方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。