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

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

mgo.v2 Find().Select().One() 返回空白

mgo.v2 Find().Select().One() 返回空白

Go
胡子哥哥 2022-01-10 15:06:37
mongo shell 輸出> db.departments.find(){ "_id" : ObjectId("5733b051e444917f9d273ce6"), "id" : "5733b05157659a11a4589102", "brandid" : "1", "name" : "first", "managerid" : "0", "users" : [ "1", "2", "3", "7" ] }該函數(shù)將 depID 作為輸入,我驗(yàn)證了它應(yīng)該是什么,即 5733b05157659a11a4589102func GetUsers(depID string) (*department.UsersResp, error) {    if !bson.IsObjectIdHex(depID) {        return nil, fmt.Errorf("%s is not a ObjectId value", depID)    }    type UserResp struct {        users []string     }    var result *UserResp    err := coll.Find(bson.M{"id": depID}).Select(bson.M{"users": 1}).One(&result)    if err != nil {    fmt.Println(err, result)        return nil, err    }    fmt.Println("result:",result)    //ignore return type and value the above print is what i have doubt about    return result, nil}結(jié)果的輸出來了 {[]}我嘗試了以下查詢,其他err := coll.Find(bson.M{"id": depID})One(&result)err := coll.Find(nil).One(&result)結(jié)果相同。數(shù)據(jù)庫連接和其他事情都很好,因?yàn)槭褂孟嗤兞康耐晃募乃衅渌δ芏糲oll有效更多信息 我也試過這個(gè)type UserResp struct {   users []string `json:"users" bson:"users"`}蒙哥日志MGO: cluster.go:590: Cluster has 1 known masters and 0 known slaves.MGO: socket.go:391: Socket 0xc8201340e0 to 127.0.0.1:27017: serializing op: &mgo.queryOp{collection:"departments.departments", query:bson.M{"id":"5733b05157659a11a4589102"}, skip:0, limit:-1, selector:bson.M{"users":1}, flags:0x4, replyFunc:(mgo.replyFunc)(0x58eef0), mode:1, options:mgo.queryWrapper{Query:interface {}(nil), OrderBy:interface {}(nil), Hint:interface {}(nil), Explain:false, Snapshot:false, ReadPreference:bson.D(nil), 
查看完整描述

3 回答

?
蝴蝶刀刀

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

我認(rèn)為問題可能是您的 UserResp 結(jié)構(gòu)具有私有成員。


//Instead of

 users []string `json:"users" bson:"users"`


// Try

 Users []string `json:"users" bson:"users"`


查看完整回答
反對(duì) 回復(fù) 2022-01-10
?
BIG陽

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

一個(gè)瘋狂的猜測,但也許可以嘗試

var result UserResp

而不是使用指針。

同樣正如沃爾特所提到的,您也應(yīng)該導(dǎo)出該Users字段。


查看完整回答
反對(duì) 回復(fù) 2022-01-10
?
慕妹3242003

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

  1. users沒有出口,應(yīng)該是Users。

  2. 您不需要指向指針的指針,我個(gè)人只是使用var result UserResp.

以下更正:

type UserResp struct {

    Users []string 

}

var result UserResp

err := coll.Find(bson.M{"id": depID}).Select(bson.M{"users": 1}).One(&result)

如果這些不是問題,那么我在處理 BSON 和數(shù)組/切片時(shí)遇到了很多問題。您可以嘗試制作Users一個(gè)界面,或者將整個(gè)輸出寫入 bson.M 映射 ( map[string]interface{}) 并從那里開始。我會(huì)這樣做:


var result bson.M

err := coll.Find(bson.M{"id": depID}).Select(bson.M{"users": 1}).One(&result)

您可以使用類型斷言訪問基礎(chǔ)數(shù)據(jù):


result["users"].([]string)

如果這不起作用,只需檢查底層數(shù)據(jù)以調(diào)試返回的類型:


fmt.Printf("%+v", result)

無論哪種方式,一旦你像這樣在 Go 中擁有數(shù)據(jù)。調(diào)試起來會(huì)容易得多。


查看完整回答
反對(duì) 回復(fù) 2022-01-10
  • 3 回答
  • 0 關(guān)注
  • 251 瀏覽

添加回答

舉報(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)