第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何將mongodb解碼結構傳遞給函數

如何將mongodb解碼結構傳遞給函數

Go
繁華開滿天機 2022-07-11 16:57:56
Decode以下代碼的步驟未正確填充原始對象document。它用一個bson對象覆蓋它。func main() {    c := Call{}    dbGetObject("collection", &c)}func dbGetObject(collectionName string, document interface{}) (err error) {    uri, creds, auth := dbGetAuth()    clientOpts := options.Client().ApplyURI(uri).SetAuth(creds)    client, err := mongo.Connect(context.TODO(), clientOpts)    if err != nil {        log.Fatal(err)        return err    }    defer client.Disconnect(context.TODO())    collection := client.Database(auth.Database).Collection(collectionName)    err = collection.FindOne(context.TODO(), bson.M{"number": "12345"}).Decode(&document)    if err != nil {        log.Fatal(err)        return err    }    return nil}然而,以下代碼確實可以正常工作:func dbGetObject(collectionName string) (err error) {    uri, creds, auth := dbGetAuth()    clientOpts := options.Client().ApplyURI(uri).SetAuth(creds)    client, err := mongo.Connect(context.TODO(), clientOpts)    if err != nil {        log.Fatal(err)        return err    }    defer client.Disconnect(context.TODO())    collection := client.Database(auth.Database).Collection(collectionName)    c := Call{}    err = collection.FindOne(context.TODO(), bson.M{"number": "12345"}).Decode(&c)    if err != nil {        log.Fatal(err)        return err    }    return nil}唯一的區(qū)別是結構的實例被傳遞到函數中而不是在函數中實例化dbGetObject。我究竟做錯了什么
查看完整描述

2 回答

?
一只名叫tom的貓

TA貢獻1906條經驗 獲得超3個贊

我真的意識到發(fā)生了什么。在調用函數然后調用解碼時,我傳遞了一個指針。所以,它實際上是在將一個指針傳遞給解碼調用。所以解決方法是改變解碼調用:

err = collection.FindOne(context.TODO(), bson.M{"number": "12345"}).Decode(&document)

err = collection.FindOne(context.TODO(), bson.M{"number": "12345"}).Decode(document)


查看完整回答
反對 回復 2022-07-11
?
元芳怎么了

TA貢獻1798條經驗 獲得超7個贊

在第一個示例中,文檔的類型是interface. 如果您將參數類型固定如下,它將正常工作。

func dbGetObject(collectionName string, document *Call)


查看完整回答
反對 回復 2022-07-11
  • 2 回答
  • 0 關注
  • 178 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號