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

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

無法從 MongoDB 獲取完整文檔

無法從 MongoDB 獲取完整文檔

Go
慕神8447489 2023-07-04 17:28:51
我有一個 MongoDB 集合,其中包含這種形式的項目    {    "_id" : "base_519",    "Name" : "Name",    "Position" : 1000,    "Type" : "Base",    "Visible" : true,    "Preview" : "/preview/preview.jpg",    "IsBase" : true,    "Product" : "product-2",    "Categories" : [         "category_1"    ],    "ObjData" : [         {            "_t" : "ObjDataNormal",            "CanBuy" : false,            "Foreground" : "/fg/foreground.gif",            "Background" : "null.no.gif",            "HasRatio" : false,            "Ratio" : "0",            "HasPadding" : true,            "Padding" : 40,            "Mask" : {                "_id" : 0,                "Name" : "",                "X" : 39,                "Y" : 85,                "Width" : 422,                "Height" : 332            }        }    ]}但是當(dāng)我嘗試使用 go 獲取整個集合時,不會返回 ObjData 字段,而是得到了這個{        "id": "base_519",        "name": "Name",        "position": 1000,        "type": "Base",        "visible": true,        "preview": "/preview/preview.jpg",        "isbase": true,        "product": "product-2",        "categories": [            "category_1"        ]    }我是 Go 語言的新手,這只是我第一次嘗試使用 mongodb 驅(qū)動程序。我在 Go 中使用的結(jié)構(gòu)是這些那么我在這里缺少什么?正如我所說,我是 Go lang 的新手,所以我可能不太了解該語言和 mongo 驅(qū)動程序的工作原理
查看完整描述

1 回答

?
犯罪嫌疑人X

TA貢獻(xiàn)2080條經(jīng)驗 獲得超4個贊

當(dāng)我嘗試使用 go 獲取整個集合時,不會返回 ObjData 字段


返回嵌套字段ObjData,但未解碼為提供的結(jié)構(gòu)。


這是因為該結(jié)構(gòu)ObjDataType有一個值不符合返回的文檔。該結(jié)構(gòu)已定義Ratio為,float64但文檔的值為0in string。


您可以通過更改結(jié)構(gòu)定義或文檔值來解決此問題。即將結(jié)構(gòu)更改為:


type ObjDataType struct {

    Type       string   `json:"type,omitempty" bson:"_t,omitempty"`

    CanBuy     bool     `json:"canbuy,omitempty" bson:"CanBuy,omitempty"`

    Foreground string   `json:"foreground,omitempty" bson:"Foreground,omitempty"`

    Background string   `json:"background,omitempty" bson:"Background,omitempty"`

    HasRatio   bool     `json:"hasratio,omitempty" bson:"HasRatio,omitempty"`

    Ratio      string  `json:"ratio,omitempty" bson:"Ratio,omitempty"`

    HasPadding bool     `json:"haspadding,omitempty" bson:"HasPadding,omitempty"`

    Padding    int      `json:"padding,omitempty" bson:"Padding,omitempty"`

    Mask       MaskType `json:"mask,omitempty" bson:"Mask,omitempty"`

}

bson.M對于您的學(xué)習(xí)之旅來說,一個額外的提示是,您可以使用而不是您的結(jié)構(gòu)來調(diào)試代碼的解碼部分。例如:


for cursor.Next(ctx) {

    var variant bson.M

    cursor.Decode(&variant)

    variants = append(variants, variant)

    fmt.Println(variant)

}


查看完整回答
反對 回復(fù) 2023-07-04
  • 1 回答
  • 0 關(guān)注
  • 160 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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