我正在尝试将多重排序查询传递给mgo软件包的“排序”参数(请参阅https://godoc.org/labix.org/v2/mgo#Query.Sort)。
如果参数是动态的(当前保存在切片中),如何将其转换为有效的排序字符串。
一个有效的例子是:
db.C(Collection).Find(Query).Limit(limit).Sort("-created_when", "-title").Iter()
但是,如果将“ -created_when”和“ -title”保留在一个切片中,则尝试使用切片联接,例如:
sortBy := []string{"-created_when", "title"} db.C(Collection).Find(Query).Limit(limit).Sort(strings.Join(sortBy, ",")).Iter()
该查询无法正常工作。
如何将切片中的任意字段转换为所需的.Sort([string1],[string2],…)格式?
像这样:
db.C(Collection).Find(Query).Limit(limit).Sort(sortBy...).Iter()