0

我尝试使用 Salat 在 MongoDB 上执行查询。查询应按两个属性对结果集进行排序。我没有找到任何例子。使用单个 MongoDBObject 进行排序按预期工作。

val results = dao
  .find(MongoDBObject.empty)
  .sort(orderBy = MongoDBObject("attribute1" -> 1))
  .skip(0)
  .limit(10).toList

如何组合两个 MongoDBObjects 以便对其进行评估orderBy?例如,如果我的优先级排序是按属性 1 升序排序,而我的次要排序是按属性 2 升序排序。

谢谢你的帮助!

4

2 回答 2

2

您可以按如下方式构建排序对象:

val sort = MongoDBObject("attribute1" -> 1) ++ ("attribute2" -> -1)

并进行查询:

val results = dao
  .find(MongoDBObject.empty)
  .sort(orderBy = sort)
  .skip(0)
  .limit(10).toList
于 2013-07-05T18:44:57.260 回答
0

您可以进行以下更改:

val results = dao
  .find(MongoDBObject.empty)
  .sort(orderBy = MongoDBObject("attribute1" -> 1, "attribute2" -> -1))
  .skip(0)
  .limit(10).toList

现在,您将按升序对属性 1 进行优先排序,并按降序对属性 2 进行排序。这允许您在一行中完成所有操作,而不是创建列表连接答案中需要的中间值。

于 2013-08-15T01:56:42.957 回答