使用mgo对Golang的Bson排序参数

6

我正在尝试将多重排序查询传递给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”被存储在一个slice中,而我尝试使用slice join时:

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

查询不正确。

我该如何将切片中的任意字段翻译成.Sort([string1], [string2], ...)所需的格式?


@icza 我发誓我没有抄袭你的评论,我刚刚看到它。 - OneOfOne
1个回答

10

就像这样:

db.C(Collection).Find(Query).Limit(limit).Sort(sortBy...).Iter()

1
谢谢大家 - 新产品发布还有2个小时 - 我无法看清问题所在! - Glenn Walker

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接