0

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

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

有没有像上面例子中那样缩短查询的好方法?

(我猜隐式并不方便)

有没有共同的方法?

提前致谢,

斯特凡

4

1 回答 1

1

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

type DBO = MongoDBObject

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

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

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

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

或类似的东西 :)。

在这里查看更多示例。

于 2013-10-06T05:31:30.323 回答