Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
缩短MongoDBObject转换_Mongodb_Scala_Casbah - Fatal编程技术网

缩短MongoDBObject转换

缩短MongoDBObject转换,mongodb,scala,casbah,Mongodb,Scala,Casbah,我在mongodb中查询时遇到的一件事是样板代码: def findPagesWithGreaterId(pageid: String, limit: Int): List[Page] = findAsListSortedLimit(MongoDBObject("_id" -> MongoDBObject("$gt" -> new ObjectId(pageid))), MongoDBObject("_id" -> 1), limit) 有没有一种很好的方法可以像上面

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

def findPagesWithGreaterId(pageid: String, limit: Int): List[Page] =
    findAsListSortedLimit(MongoDBObject("_id" -> MongoDBObject("$gt" -> new ObjectId(pageid))), MongoDBObject("_id" -> 1), limit)
有没有一种很好的方法可以像上面的例子那样缩短查询

(我想这并不方便)

有共同的方法吗

提前感谢,


Stefan

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

type DBO = MongoDBObject
或者以类似的方式在导入时重命名类:

import com.mongodb.casbah.commons.{MongoDBObject => DBO}
我不太喜欢这些解决方案。更好的办法是使用。它不仅读起来更好,实际上更安全。唯一的缺点是,您必须先定义DB类,然后才能进行查询,但一旦定义了,您的查询将如下所示:

Pages.where(_.id gt new ObjectId(pageid)).orderAsc(_.id).limit(1)
或者类似的:)

查看更多示例