mongoid-eager-loading adds the eager loading feature for mongoid.
Originally it is my pull request for mongoid, but it is not accepted yet, so I created this gem to get the eager loading benefits easily for my projects.
I only test it in mongoid 2.0.0.beta.19 and 2.0.0.beta.20, maybe you can try it on other mongoid version, and let me know if it works fine.
define it in your Gemfile
suppose you have a mongoid model Post
class Post include Mongoid::Document referenced_in :user references_many :comments end
then you can use the eager loading like
Post.includes(:user) Post.includes(:user, :comments)
eager loading can be only used on referenced_in, references_one and references_many associations.
I also run a benchmark on my local computer, the result is as follows
Starting benchmark... user system total real Finding 10 posts with person, without eager loading 0.010000 0.000000 0.010000 ( 0.005121) Finding 10 posts with person, with eager loading 0.000000 0.000000 0.000000 ( 0.001886) Finding 50 posts with person, without eager loading 0.020000 0.000000 0.020000 ( 0.021442) Finding 50 posts with person, with eager loading 0.000000 0.000000 0.000000 ( 0.005267) Finding 100 posts with person, without eager loading 0.050000 0.000000 0.050000 ( 0.057718) Finding 100 posts with person, with eager loading 0.010000 0.000000 0.010000 ( 0.010141)
Richard Huang :: email@example.com :: @flyerhzm
Copyright (c) 2010 Richard Huang. See LICENSE for details.