我想使用Go更改Mongo DB中文档的顺序。我有有效的json字符串代码,我可以成功地将其封送到map[string]int
中。这种类型的样本就像:CCD_ 2。该值按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驱动程序上的bug还是我错了?
您能发布使用驱动程序编写的代码吗?基于bson.DocElem
的使用,我认为您使用的是mgo,但mgo的Query.Sort
方法使用字符串,而不是文档(https://pkg.go.dev/github.com/globalsign/mgo?tab=doc#Query.Sort)。