mongodb - 使用 SetSort 时,Mongo Go 驱动程序出现接口转换错误
问题描述
我想使用 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驱动程序的错误还是我错了?
解决方案
您可以发布您编写的使用驱动程序的代码吗?基于 的使用bson.DocElem
,我认为您使用的是 mgo,但 mgo 的Query.Sort
方法需要字符串,而不是文档(https://pkg.go.dev/github.com/globalsign/mgo?tab=doc#Query.Sort)。
推荐阅读
- firefox - 打印 firefox session id 和 command executor url:这是什么意思?
- javascript - onAuthStateChange 中的 setState 不起作用
- reactjs - 反应部署问题
- android - 安卓。文本视图。文本的最后一个可见字符
- php - 在 html img 标签中加入 php
- python - 无法将符号张量 (sequential_34/sequential_33/random_rotation_8/rotation_matrix/strided_slice:0) 转换为 numpy 数组
- javascript - 如何在反应选择中使用 onChange
- combobox - WPF修改的组合框选择不起作用
- android - 如何在颤动中维护页面的状态
- go - 尝试在测试模式下在 VSCode 调试器上调试 golang 时出现奇怪的错误