mgo中的Golang Bson排序参数

Posted

技术标签:

【中文标题】mgo中的Golang Bson排序参数【英文标题】:Golang Bson sort parameters in mgo 【发布时间】:2015-12-30 17:22:36 【问题描述】:

我正在尝试将多重排序查询传递给 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], ...) 格式??

【问题讨论】:

@icza 我发誓我没有复制你的评论,我现在才看到。 【参考方案1】:

像这样:

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

【讨论】:

谢谢各位 - 比新产品发布提前 2 小时 - 无法为树木找到木材!

以上是关于mgo中的Golang Bson排序参数的主要内容,如果未能解决你的问题,请参考以下文章

如何取消引用mgo中的dbref?

mgo 将 bson.objectId 转换为 html 模板中的字符串(十六进制)

如何使用 golang 的 mgo 包进行类似查询

无法使用带有 golang 的 mgo 检索“_id”值

使用 golang 和 mgo,如何在 MongoDB 中搜索一系列值?

带有 mgo 的 Go (golang) 中的 MongoDB:如何更新记录、确定更新是不是成功并在单个原子操作中获取数据?