scala处理大型(mongodb)结果集

scala处理大型(mongodb)结果集,mongodb,scala,Mongodb,Scala,关于MongoDB结果,我有一个一般性的问题:假设我有一万亿个结果,我想使用Casbah驱动程序来拆分,但即使使用limit命令,我似乎仍然可以避免内存错误。除了通过使用limit和懒洋洋地点击下一页来拆分巨大的结果集之外,还有什么关于如何处理这些结果集的一般建议吗 或者甚至可以使用视图轻松地处理此过程 有没有什么魔法把戏能让事情变得简单一点 问候, 斯特凡好的 这不是一个直接的解决方案,但一般来说,大型游标的问题是它们最终会受到IO限制 因此,我添加了在应用程序中分页结果的功能: 要在结果之间

关于MongoDB结果,我有一个一般性的问题:假设我有一万亿个结果,我想使用Casbah驱动程序来拆分,但即使使用limit命令,我似乎仍然可以避免内存错误。除了通过使用limit和懒洋洋地点击下一页来拆分巨大的结果集之外,还有什么关于如何处理这些结果集的一般建议吗

或者甚至可以使用视图轻松地处理此过程

有没有什么魔法把戏能让事情变得简单一点

问候,

斯特凡

好的

这不是一个直接的解决方案,但一般来说,大型游标的问题是它们最终会受到IO限制

因此,我添加了在应用程序中分页结果的功能:

要在结果之间循环(向前和向后),我使用以下方法:

def findPagesWithGreaterId(pageid: String, limit: Int): List[Page] =

      findAsListSortedLimit(MongoDBObject("_id" -> MongoDBObject("$gt" -> new ObjectId(pageid))), MongoDBObject("_id" -> 1), limit) 

  /**
   * finds a slice of pages with a smaller id (required for paging)
   */
  def findPagesWithSmallerId(pageid: String, limit: Int): List[Page] = 

findAsListSortedLimit(MongoDBObject("_id" -> MongoDBObject("$lt" -> new ObjectId(pageid))), MongoDBObject("_id" -> 1), limit)

      /**
因此,无论你做什么,你都应该首先限制光标的大小,因为一个大的光标总是会导致糟糕的性能


这当然不是我想要的elgant解决方案。

您能提供一个如何查询和迭代结果集的细节吗?