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

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

如何使用 mongo-go-driver 模擬光標(biāo)

如何使用 mongo-go-driver 模擬光標(biāo)

Go
海綿寶寶撒 2023-07-26 17:07:51
我剛剛學(xué)習(xí)了 go 語(yǔ)言,然后使用https://github.com/mongodb/mongo-go-driver與 MongoDB 和 Golang 一起制作 REST API,然后我正在進(jìn)行單元測(cè)試,但在模擬 Cursor 時(shí)我陷入困境MongoDB,因?yàn)?Cursor 是一個(gè)結(jié)構(gòu),是一個(gè)想法還是有人創(chuàng)造了它?
查看完整描述

2 回答

?
aluckdog

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

在我看來(lái),模擬此類對(duì)象的最佳方法是定義一個(gè)接口,因?yàn)?go 接口是隱式實(shí)現(xiàn)的,您的代碼可能不需要那么多更改。一旦你有了一個(gè)界面,你就可以使用一些第三方庫(kù)來(lái)自動(dòng)生成模擬,比如嘲笑


有關(guān)如何創(chuàng)建界面的示例


type Cursor interface{

  Next(ctx Context)

  Close(ctx Context)  

}

只需更改任何接收 mongodb 游標(biāo)的函數(shù)即可使用自定義接口


查看完整回答
反對(duì) 回復(fù) 2023-07-26
?
長(zhǎng)風(fēng)秋雁

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

我剛剛遇到這個(gè)問(wèn)題。因?yàn)閙ongo.Cursor有一個(gè)內(nèi)部字段保存[]byte-- Current,為了完全模擬,您需要包裝mongo.Cursor. 以下是我為此創(chuàng)建的類型:


type MongoCollection interface {

    Find(ctx context.Context, filter interface{}, opts ...*options.FindOptions) (MongoCursor, error)

    FindOne(ctx context.Context, filter interface{}, opts ...*options.FindOneOptions) MongoDecoder

    Aggregate(ctx context.Context, pipeline interface{}, opts ...*options.AggregateOptions) (MongoCursor, error)

}


type MongoDecoder interface {

    DecodeBytes() (bson.Raw, error)

    Decode(val interface{}) error

    Err() error

}


type MongoCursor interface {

    Decode(val interface{}) error

    Err() error

    Next(ctx context.Context) bool

    Close(ctx context.Context) error

    ID() int64

    Current() bson.Raw

}


type mongoCursor struct {

    mongo.Cursor

}


func (m *mongoCursor) Current() bson.Raw {

    return m.Cursor.Current

}

不幸的是,這將是一個(gè)移動(dòng)的目標(biāo)。MongoCollection隨著時(shí)間的推移,我將不得不向界面添加新功能。


查看完整回答
反對(duì) 回復(fù) 2023-07-26
  • 2 回答
  • 0 關(guān)注
  • 167 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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