缩短MongoDBObject转换

时间:2013-10-05 20:21:28

标签: mongodb scala casbah

我遇到的一件事是在mongodb中查询时的样板代码:

def findPagesWithGreaterId(pageid: String, limit: Int): List[Page] =
    findAsListSortedLimit(MongoDBObject("_id" -> MongoDBObject("$gt" -> new ObjectId(pageid))), MongoDBObject("_id" -> 1), limit)

是否有一种缩短查询的好方法,如上例所示?

(我觉得暗示并不方便)

有一个共同的方法吗?

提前感谢,

的Stefan

1 个答案:

答案 0 :(得分:1)

您可以定义类型别名以缩短类名:

type DBO = MongoDBObject

或以类似的方式在导入时重命名一个类:

import com.mongodb.casbah.commons.{MongoDBObject => DBO}

我不太喜欢这些解决方案。最好的办法是使用Rogue。它不仅读得更好,它实际上更加类型安全。唯一的缺点是你必须首先定义你的数据库类,然后才能查询,但一旦你这样做,你的查询将如下所示:

Pages.where(_.id gt new ObjectId(pageid)).orderAsc(_.id).limit(1)

或类似的东西:)。

查看here了解更多示例。