【问题标题】:Mongo Go Driver is getting interface conversion error when SetSort used使用 SetSort 时,Mongo Go 驱动程序出现接口转换错误
【发布时间】:2020-02-20 07:18:29
【问题描述】:

我想使用 Go 在 Mongo DB 中更改我的文档顺序。我有有效的 json 字符串代码,我可以将它成功编组到 map[string]int。这种类型的样本就像: [{year 1}, {lastupdated -1}]。该值呈现顺序year 字段升序和lastupdated 字段降序。这个结构是 MongoDB 理解的一个方面。我还将这些数据传递给bson.D 类型。这是我的代码:

if queries["order"] != nil {
        var unmarshalledOrder map[string]int
        json.Unmarshal(queries["order"].([]byte), &unmarshalledOrder)

        docRes := make(bson.D, 0)
        for field, sort := range unmarshalledOrder {
            docRes = append(docRes, bson.DocElem{field, sort})
        }

        log.Println(docRes)
    }

当我打印docRes 时,一切顺利。但我将数据传递给options.Sort 函数,该函数引发interface conversion: interface {} is runtime.errorString, not string 恐慌。这是mongo go驱动程序的错误还是我错了?

【问题讨论】:

    标签: mongodb go


    【解决方案1】:

    您可以发布您编写的使用驱动程序的代码吗?基于bson.DocElem的使用,我认为您使用的是mgo,但是mgo的Query.Sort方法接受的是字符串,而不是文档(https://pkg.go.dev/github.com/globalsign/mgo?tab=doc#Query.Sort)。

    【讨论】:

    • 感谢您的关注。几个小时前我解决了这个问题(我使用了聚合框架 api)。我也不使用mgo。谢谢
    猜你喜欢
    • 2020-04-02
    • 2020-03-14
    • 2015-08-30
    • 2013-05-15
    • 1970-01-01
    • 2016-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多