Suppose I have the following two models
```ruby
class Post
belongs_to :user
end
class User; end
```
If I try to `map` a criteria twice, the second time the eager loading is not respected. For example:
```
> crit = Post.limit(7).includes(:user)
> crit.map
;
```
Will generate the db calls
```
db.find | STARTED | {"find"=>"posts", "filter"=>{}, "limit"=>7}
db.find | SUCCEEDED | 0.001872s
db.killCursors | STARTED |
db.killCursors | SUCCEEDED | 0.000116s
db.find | STARTED | {"find"=>"user", "filter"=>{"_id"=>{"$in"=>[BSON::ObjectId('55e5974764643400033a0000'), BSON::ObjectId('55e597456464340003280000'), nil, BSON::ObjectId('55e597436464340003050000'), BSON::ObjectId('55e5974664643400032f0000'), BSON::ObjectId(...
db.find | SUCCEEDED | 0.00046s
```
But calling the previous line once more generates an N+1 query
```
> crit.map
;
```
```
db.find | STARTED | {"find"=>"posts", "filter"=>{}, "limit"=>7}
db.find | SUCCEEDED | 0.001755s
db.find | STARTED | {"find"=>"user", "filter"=>
, "sort"=>{"_id"=>1}}
db.find | SUCCEEDED | 0.00036199999999999996s
db.find | STARTED | {"find"=>"user", "filter"=>
, "sort"=>{"_id"=>1}}
db.find | SUCCEEDED | 0.000387s
db.find | STARTED | {"find"=>"user", "filter"=>
, "sort"=>{"_id"=>1}}
db.find | SUCCEEDED | 0.00029299999999999997s
db.find | STARTED | {"find"=>"user", "filter"=>
, "sort"=>{"_id"=>1}}
db.find | SUCCEEDED | 0.000312s
db.find | STARTED | {"find"=>"user", "filter"=>
, "sort"=>{"_id"=>1}}
db.find | SUCCEEDED | 0.00035000000000000005s
db.find | STARTED | {"find"=>"user", "filter"=>
, "sort"=>{"_id"=>1}}
db.find | SUCCEEDED | 0.000346s
db.find | STARTED | {"find"=>"user", "filter"=>
, "sort"=>{"_id"=>1}}
db.find | SUCCEEDED | 0.0008539999999999999s
db.killCursors | STARTED |
db.killCursors | SUCCEEDED | 7.7e-05s
```