-
-
Save mmlac/4358102 to your computer and use it in GitHub Desktop.
Mongoid: includes?
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class Book | |
include Mongoid::Document | |
include Mongoid::Paranoia | |
field :sites, type: String | |
belongs_to :shelf | |
end |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
################################ | |
### Create some data in IRB ### | |
################################ | |
30.times{|i| | |
s = Shelf.create(genre: i.to_s) | |
100.times{|i| | |
Book.create(shelf: s, sites: "The not so Final Fantasy #{i}") | |
} | |
} | |
####################################### | |
### Or for convenience in one line: ### | |
####################################### | |
30.times{|i| s = Shelf.create(genre: i.to_s); 100.times{|i| Book.create(shelf: s, sites: "The not so Final Fantasy #{i}")} } | |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
s = Shelf.includes(:books).all | |
s.each do |aa| | |
puts aa.books.first.sites | |
end |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
What I expect the result to be is | |
1. A query to get all shelves | |
2. A query to get all books in the shelves | |
3. Nothing more when I access the books | |
The results I get are the following (using NewRelic dev mode) | |
Timestamp Duration SQL | |
0.032 1 ms View Source | |
COMMAND database=admin command={:ismaster=>1} | |
0.033 1 ms View Source | |
QUERY database=cb-migrate-test collection=users selector={"deleted_at"=>nil, "_id"=>"506df1965e40061200000019"} flags=[] limit=0 skip=0 fields=nil | |
0.061 1 ms View Source | |
QUERY database=cb-migrate-test collection=shelves selector={"deleted_at"=>nil} flags=[] limit=0 skip=0 fields=nil | |
0.131 3 ms View Source | |
QUERY database=cb-migrate-test collection=books selector={"deleted_at"=>nil, "shelf_id"=>{"$in"=>["50d572f65f766a014e000001", "50d573d15f766a014e000066", "50d573d15f766a014e0000cb", "50d573d15f766a014e000130", "50d573d15f766a014e000195", "50d573d15f766a014e0001fa", "50d573d25f766a014e00025f", "50d573d25f766a014e0002c4", "50d573d25f766a014e000329", "50d573d25f766a014e00038e", "50d573d25f766a014e0003f3", "50d573d25f766a014e000458", "50d573d25f766a014e0004bd", "50d573d25f766a014e000522", "50d573d25f766a014e000587", "50d573d25f766a014e0005ec", "50d573d25f766a014e000651", "50d573d25f766a014e0006b6", "50d573d25f766a014e00071b", "50d573d35f766a014e000780", "50d573d35f766a014e0007e5", "50d573d35f766a014e00084a", "50d573d35f766a014e0008af", "50d573d35f766a014e000914", "50d573d35f766a014e000979", "50d573d35f766a014e0009de", "50d573d35f766a014e000a43", "50d573d35f766a014e000aa8", "50d573d35f766a014e000b0d", "50d573d35f766a014e000b72", "50d573d35f766a014e000bd7"]}} flags=[] limit=0 skip=0 fields=nil | |
0.136 32 ms View Source | |
GET_MORE database=cb-migrate-test collection=books limit=0 cursor_id=2446010863602927448 | |
0.282 1 ms View Source | |
QUERY database=cb-migrate-test collection=books selector={"$query"=>{"deleted_at"=>nil, "shelf_id"=>"50d572f65f766a014e000001"}, "$orderby"=>{:_id=>1}} flags=[] limit=-1 skip=0 fields=nil | |
0.283 1 ms View Source | |
QUERY database=cb-migrate-test collection=books selector={"$query"=>{"deleted_at"=>nil, "shelf_id"=>"50d572f65f766a014e000001"}, "$orderby"=>{:_id=>1}} flags=[] limit=-1 skip=0 fields=nil | |
0.284 1 ms View Source | |
QUERY database=cb-migrate-test collection=books selector={"$query"=>{"deleted_at"=>nil, "shelf_id"=>"50d573d15f766a014e000066"}, "$orderby"=>{:_id=>1}} flags=[] limit=-1 skip=0 fields=nil | |
0.286 1 ms View Source | |
QUERY database=cb-migrate-test collection=books selector={"$query"=>{"deleted_at"=>nil, "shelf_id"=>"50d573d15f766a014e000066"}, "$orderby"=>{:_id=>1}} flags=[] limit=-1 skip=0 fields=nil | |
0.287 1 ms View Source | |
QUERY database=cb-migrate-test collection=books selector={"$query"=>{"deleted_at"=>nil, "shelf_id"=>"50d573d15f766a014e0000cb"}, "$orderby"=>{:_id=>1}} flags=[] limit=-1 skip=0 fields=nil | |
0.289 2 ms View Source | |
QUERY database=cb-migrate-test collection=books selector={"$query"=>{"deleted_at"=>nil, "shelf_id"=>"50d573d15f766a014e0000cb"}, "$orderby"=>{:_id=>1}} flags=[] limit=-1 skip=0 fields=nil | |
0.292 4 ms View Source | |
QUERY database=cb-migrate-test collection=books selector={"$query"=>{"deleted_at"=>nil, "shelf_id"=>"50d573d15f766a014e000130"}, "$orderby"=>{:_id=>1}} flags=[] limit=-1 skip=0 fields=nil | |
0.296 2 ms View Source | |
QUERY database=cb-migrate-test collection=books selector={"$query"=>{"deleted_at"=>nil, "shelf_id"=>"50d573d15f766a014e000130"}, "$orderby"=>{:_id=>1}} flags=[] limit=-1 skip=0 fields=nil | |
0.298 2 ms View Source | |
QUERY database=cb-migrate-test collection=books selector={"$query"=>{"deleted_at"=>nil, "shelf_id"=>"50d573d15f766a014e000195"}, "$orderby"=>{:_id=>1}} flags=[] limit=-1 skip=0 fields=nil | |
0.301 2 ms View Source | |
QUERY database=cb-migrate-test collection=books selector={"$query"=>{"deleted_at"=>nil, "shelf_id"=>"50d573d15f766a014e000195"}, "$orderby"=>{:_id=>1}} flags=[] limit=-1 skip=0 fields=nil | |
0.303 3 ms View Source | |
QUERY database=cb-migrate-test collection=books selector={"$query"=>{"deleted_at"=>nil, "shelf_id"=>"50d573d15f766a014e0001fa"}, "$orderby"=>{:_id=>1}} flags=[] limit=-1 skip=0 fields=nil | |
0.307 3 ms View Source | |
. | |
. | |
. | |
You get the idea. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class Shelf | |
include Mongoid::Document | |
include Mongoid::Paranoia | |
field :genre, type: String | |
has_many :books | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment