当前位置: 首页 > 面试题库 >

mgo中的Golang Bson排序参数

易流觞
2023-03-14
问题内容

我正在尝试将多重排序查询传递给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()


 类似资料:
  • 问题内容: 我最近在最近的回答中使用以下内容收到了反对意见: 由于使用“ yoda条件”而给出了下票。我要求进一步解释,但未提供任何解释。我更喜欢这种风格以避免可能。 这是不良的编码风格吗?如果是这样,为什么? 问题答案: Bill Pugh在Devoxx2011上问了这个问题。我和比尔在一起,现在更喜欢。 Java传统的基础是我们尽早发现错误。NPE非常普遍。我们希望尽快将这些空值路由出去。 如

  • 问题内容: 我的字符串包含很多与我的数据库相对应的ID。喜欢: 然后,我执行mySQL查询以选择所有这些行: 我希望mySQL按照我在IN()中选择的顺序返回行。 所以如果我有 在PHP中进行提取时,第一行将是#2。没有任何ORDER BY,看起来它首先返回最低的ID。 让我知道您是否需要进一步的扩展。 问题答案: 您应该可以通过如下功能执行此操作: 那是: 这篇博客文章的更多内容: 使用列值对M

  • mgo

    mgo 是 MongoDB 的 GO 语言驱动包,它遵循标准的Go习惯用法,通过非常简单的API来实现丰富且经过测试的功能选择。 安装方法:go get gopkg.in/mgo.v2 Highlights 集群发现与交流 故障转移管理 同步与并发 结果预取 灵活的序列化 琐碎的一致性级别管理 具有池集成的身份验证支持 GridFS支持 经过全面测试

  • 问题内容: 我不明白如何正确使用$ literal。我正在使用mgo.v2和mgo.v2 / bson包。 我使用上面的代码在mongodb中获取数据并正常工作,它给了我结果 我试图在golang中使用相同的内容,如下所示 上面的代码,抛出一个错误 紧急:错误查询:BadValue:点必须是数组或对象 所以我就这样替换了 但这也让我出错 紧急:此对象已经是运算符,不能用作文档表达式(在“坐标”处)

  • 我对Akka演员和演员模型有点困惑。从参与者A发送到参与者B的消息是否保持顺序?如何在本地/网络环境中实现这一点?据我所知,网络引入了可变延迟,如果M1的延迟为1秒,M2为0.5秒,那么消息M1和消息M2如何保持顺序?

  • 问题内容: 说我有 我明白 会导致 [(’Able’,10),(’Dog’,15),(’Baker’,20),(’Charlie’,20)]] 但这如何工作? 问题答案: 传递给您的函数将获得要排序的每个项目,并返回Python可以排序的“键”。因此,如果要按字符串的 相反顺序 对字符串列表进行排序,可以执行以下操作: 这使您可以指定每个项目的排序依据值,而不必更改项目。这样,您不必构建反向字符串