登录
首页 >  Golang >  Go问答

Mongo-go-driver:上下文截止日期已超过

来源:stackoverflow

时间:2024-03-05 08:45:27 135浏览 收藏

最近发现不少小伙伴都对Golang很感兴趣,所以今天继续给大家介绍Golang相关的知识,本文《Mongo-go-driver:上下文截止日期已超过》主要内容涉及到等等知识点,希望能帮到你!当然如果阅读本文时存在不同想法,可以在评论中表达,但是请勿使用过激的措辞~

问题内容

我最近为我正在开发的应用程序升级到了更新的官方 golang mongo 驱动程序。 一切都非常适合我的本地开发,但是当我连接它并指向我的后端服务器时,我在调用 client.ping(...) 方法时收到“超出上下文截止日期”的消息。

旧的驱动程序代码仍然可以正常工作,我还打印出连接字符串,然后可以将其复制并粘贴到指南针应用程序中,并且它可以正常工作。

但是,我一生都无法弄清楚为什么这个新代码会返回上下文超时。唯一不同的是 mongo 运行在非标准端口 32680 上,并且我也使用 mgm 包。然而,它只是在后台使用官方的 mongo 驱动程序。

mongo版本是:4.0.12(本地和远程)

连接代码在这里:

// NewClient creates a mongo DateBase connection
func NewClient(cfg config.Mongo) (*Client, error) {
    // create database connection string
    conStr := fmt.Sprintf("mongodb://%s:%s@%s:%s", cfg.Username, cfg.Password, cfg.Host, cfg.Port)

    // set mgm conf ie ctxTimeout value
    conf := mgm.Config{CtxTimeout: cfg.CtxTimeout}

    // setup mgm / DateBase connection
    err := mgm.SetDefaultConfig(&conf, cfg.Database, options.Client().ApplyURI(conStr))
    if err != nil {
        return nil, errors.Wrapf(err, "failed to connect to mongodb. cfg: %+v. conStr: %+v.", cfg, conStr)
    }

    // get access to underlying mongodb client driver, db and mgmConfig. Need for adding additional tools like seeding/migrations/etc
    mgmCfg, client, db, err := mgm.DefaultConfigs()
    if err != nil {
        return nil, errors.Wrap(err, "failed to return mgm.DefaultConfigs")
    }

    // NOTE: fails here!
    if err := client.Ping(mgm.Ctx(), readpref.Primary()); err != nil {
        return nil, errors.Wrapf(err, "Ping failed to mongodb. cfg: %+v. conStr: %+v. mgmCfg: %+v", cfg, conStr, mgmCfg)
    }

    return &Client{
        cfg:    cfg,
        mgmCfg: mgmCfg,
        client: client,
        db:     db,
    }, nil
}

救命!我不知道如何调试这个了?


解决方案


尝试在 dsn 中添加您的 authsource,

类似的东西

mongodb://USER:PASSWORD@HOST:PORT/DBNAME?authsource=AUTHSOURCE

今天关于《Mongo-go-driver:上下文截止日期已超过》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于的内容请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>