使用Salat for MongoDB的多个属性进行排序

时间:2013-07-05 18:01:26

标签: mongodb scala salat

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

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

如何组合两个MongoDBObject,以便orderBy评估它?例如,如果我的优先级排序是由attribute1,升序和我的辅助排序按属性2,升序。

感谢您的帮助!

2 个答案:

答案 0 :(得分:2)

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

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

并进行查询:

val results = dao
  .find(MongoDBObject.empty)
  .sort(orderBy = sort)
  .skip(0)
  .limit(10).toList

答案 1 :(得分:0)

您可以进行以下更改:

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

现在,您将按优先顺序对attribute1按升序排序,并且在绑定时,它将按降序排列到attribute2。这允许您在一行中执行所有操作,而不是创建列表并置答案中所需的中间值。