mongodb - 使用 SetSort 时,Mongo Go 驱动程序出现接口(interface)转换错误

标签 mongodb go

我想使用 Go 在 Mongo DB 中更改我的文档的顺序。我有有效的 json 字符串代码,我可以将它成功编码到 map[string]int .这种类型的样本就像:[{year 1}, {lastupdated -1}] .值(value)呈现订单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 panic 。这是mongo go驱动程序的错误还是我错了?

最佳答案

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

关于mongodb - 使用 SetSort 时,Mongo Go 驱动程序出现接口(interface)转换错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60314698/

相关文章:

go.mod Unresolved 依赖

go - 基于 "Broadcast"或 "Room"的 Websocket 策略

cryptography - Go 中的加密库与 OpenSSL 相比如何?

mongodb - 如何使用代理跳转(堡垒主机)通过 ssh 隧道连接到 mongodb 服务器

javascript - ".findOneAndUpdate()"未正确更新数据库(Mongodb 和 Node.js)

arrays - 仅返回文本搜索匹配的数组元素

arrays - GO中嵌套的JSON数组生成

javascript - 嵌入数组的 MongoDB 平均值作为额外字段

javascript - 循环收集异步和同步数据

go - 如何在同一循环内向 channel 发送值或从 channel 接收值?