英文:
Golang Bson sort parameters in mgo
问题
我正在尝试将多个排序查询传递给mgo包的"Sort"参数(请参阅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], ...)格式?
英文:
I am trying to pass a multiple sort query to the "Sort" parameter of the mgo package (see https://godoc.org/labix.org/v2/mgo#Query.Sort).
If the parameters are dynamic (currently held in a slice), how can I translate that into a valid sort string.
A working example would be:
db.C(Collection).Find(Query).Limit(limit).Sort("-created_when", "-title").Iter()
But if "-created_when" and "-title" are held in a slice, and I try using a slice join like:
sortBy := []string{"-created_when", "title"}
db.C(Collection).Find(Query).Limit(limit).Sort(strings.Join(sortBy, ",")).Iter()
The query doesn't work correctly.
How can I translate the arbitrary fields in the slice into the .Sort([string1], [string2], ...) format required??
答案1
得分: 10
像这样:
db.C(集合).查找(查询).限制(限制数).排序(排序方式...).迭代()
英文:
Like this:
db.C(Collection).Find(Query).Limit(limit).Sort(sortBy...).Iter()
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论