在Mongo映射器中高效检索大型数据集?

时间:2011-01-28 08:38:38

标签: regex mongodb mongomapper large-data-volumes

我正在存储大量的Twitter数据,并希望一次检索大约500k的数据处理记录。我有一个TwitterTweet mongo文档,其中包含基本的推文数据,并尝试按如下方式检索它:

weekly_tweets = TwitterTweet.all(:created_at.gt => 1.week.ago, :fields => [:created_at, :text, :from_user])

麻烦的是,这占用了大量的时间和内存 - 是否有任何方法可以使其更具可扩展性和效率。我曾想过使用map reduce,但对于我想做的事情来说它看起来非常复杂 - 文本处理和推文上的正则表达式。

1 个答案:

答案 0 :(得分:0)

不要全部打电话,因为这样可以在mongo中制作所有500k条目的对象,并且你会注意到使用大量的内存和时间。请改用find_each并迭代。 Find返回一个更有效的游标。