首頁  >  文章  >  後端開發  >  我應該在 Go 中為 BSON 文件使用“interface{}”嗎?

我應該在 Go 中為 BSON 文件使用“interface{}”嗎?

Barbara Streisand
Barbara Streisand原創
2024-11-17 15:12:01603瀏覽

Should I Use `interface{}` for BSON Documents in Go?

使用 Go 傳遞 BSON 文件

使用 mgo 套件使用 Go 和 MongoDB 時,在傳遞 BSON 文件時通常會遇到挑戰。本文解決了一個這樣的問題,特別關注 BSON 文件是否使用 interface{} 的問題。

問題:

您已經建立了一個BSON文檔,但當嘗試將其傳遞給另一個採用interface{} 類型的包中的函數時,您會遇到錯誤:「panic: Can't marshal interface {} as a BSON document.」

解決方案:

您的問題源自於您不應該自己建立BSON 文檔。相反,您可以定義一個結構體來表示文件的架構,然後使用 mgo 套件來處理 BSON 資料的編組和解組。

在account.go 中:

定義代表您帳戶的結構體:

在dbEngine.go 中:

更新Insert 函數以接受interface{} 參數:

在您的主應用程式中:

在您的主應用程式中:

建立Account結構的實例並將其插入資料庫:

此方法允許mgo 正確處理BSON 文件的編碼和解碼,無需手動處理。

以上是我應該在 Go 中為 BSON 文件使用“interface{}”嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn