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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何將mongodb解碼結(jié)構(gòu)傳遞給函數(shù)

如何將mongodb解碼結(jié)構(gòu)傳遞給函數(shù)

Go
繁華開滿天機(jī) 2022-07-11 16:57:56
Decode以下代碼的步驟未正確填充原始對(duì)象document。它用一個(gè)bson對(duì)象覆蓋它。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}然而,以下代碼確實(shí)可以正常工作: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ū)別是結(jié)構(gòu)的實(shí)例被傳遞到函數(shù)中而不是在函數(shù)中實(shí)例化dbGetObject。我究竟做錯(cuò)了什么
查看完整描述

2 回答

?
一只名叫tom的貓

TA貢獻(xiàn)1906條經(jīng)驗(yàn) 獲得超3個(gè)贊

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

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

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


查看完整回答
反對(duì) 回復(fù) 2022-07-11
?
元芳怎么了

TA貢獻(xiàn)1798條經(jīng)驗(yàn) 獲得超7個(gè)贊

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

func dbGetObject(collectionName string, document *Call)


查看完整回答
反對(duì) 回復(fù) 2022-07-11
  • 2 回答
  • 0 關(guān)注
  • 167 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)