Golang Bson在mgo中对参数进行排序

Gle*_*ker 5 sorting go bson mgo

我正在尝试将多重排序查询传递给mgo包的"Sort"参数(请参阅https://godoc.org/labix.org/v2/mgo#Query.Sort).

如果参数是动态的(当前保存在切片中),我该如何将其转换为有效的排序字符串.

一个工作的例子是:

db.C(Collection).Find(Query).Limit(limit).Sort("-created_when", "-title").Iter()
Run Code Online (Sandbox Code Playgroud)

但如果"-created_when"和"-title"保存在切片中,我尝试使用切片连接,如:

sortBy := []string{"-created_when", "title"}
db.C(Collection).Find(Query).Limit(limit).Sort(strings.Join(sortBy, ",")).Iter()
Run Code Online (Sandbox Code Playgroud)

查询无法正常工作.

如何将切片中的任意字段转换为所需的.Sort([string1],[string2],...)格式?

One*_*One 10

像这样:

db.C(Collection).Find(Query).Limit(limit).Sort(sortBy...).Iter()
Run Code Online (Sandbox Code Playgroud)