graphs with mongo - files.meetup.com acyclic graphs in mongodb.pdffriday, september 9, 2011. one and...
TRANSCRIPT
![Page 1: GRAPHS WITH MONGO - files.meetup.com Acyclic Graphs in MongoDB.pdfFriday, September 9, 2011. ONE AND ONLY ONE PARENT Friday, September 9, 2011. DIRECTED ACYCLIC GRAPH NODE CAN HAVE](https://reader034.vdocument.in/reader034/viewer/2022052007/601b26d9939bc507032de221/html5/thumbnails/1.jpg)
GRAPHS WITH MONGOSCOTT MESSINGER
Friday, September 9, 2011
![Page 2: GRAPHS WITH MONGO - files.meetup.com Acyclic Graphs in MongoDB.pdfFriday, September 9, 2011. ONE AND ONLY ONE PARENT Friday, September 9, 2011. DIRECTED ACYCLIC GRAPH NODE CAN HAVE](https://reader034.vdocument.in/reader034/viewer/2022052007/601b26d9939bc507032de221/html5/thumbnails/2.jpg)
WHO AM I?
Friday, September 9, 2011
![Page 3: GRAPHS WITH MONGO - files.meetup.com Acyclic Graphs in MongoDB.pdfFriday, September 9, 2011. ONE AND ONLY ONE PARENT Friday, September 9, 2011. DIRECTED ACYCLIC GRAPH NODE CAN HAVE](https://reader034.vdocument.in/reader034/viewer/2022052007/601b26d9939bc507032de221/html5/thumbnails/3.jpg)
WHO AM I?
Friday, September 9, 2011
![Page 4: GRAPHS WITH MONGO - files.meetup.com Acyclic Graphs in MongoDB.pdfFriday, September 9, 2011. ONE AND ONLY ONE PARENT Friday, September 9, 2011. DIRECTED ACYCLIC GRAPH NODE CAN HAVE](https://reader034.vdocument.in/reader034/viewer/2022052007/601b26d9939bc507032de221/html5/thumbnails/4.jpg)
WHO AM I?
Friday, September 9, 2011
![Page 5: GRAPHS WITH MONGO - files.meetup.com Acyclic Graphs in MongoDB.pdfFriday, September 9, 2011. ONE AND ONLY ONE PARENT Friday, September 9, 2011. DIRECTED ACYCLIC GRAPH NODE CAN HAVE](https://reader034.vdocument.in/reader034/viewer/2022052007/601b26d9939bc507032de221/html5/thumbnails/5.jpg)
TREE STRUCTURES
awesome_nested_set (left/right columns)
ancestry (materialized path)
acts_as_tree (parent_id)
Friday, September 9, 2011
![Page 6: GRAPHS WITH MONGO - files.meetup.com Acyclic Graphs in MongoDB.pdfFriday, September 9, 2011. ONE AND ONLY ONE PARENT Friday, September 9, 2011. DIRECTED ACYCLIC GRAPH NODE CAN HAVE](https://reader034.vdocument.in/reader034/viewer/2022052007/601b26d9939bc507032de221/html5/thumbnails/6.jpg)
ONE AND ONLY ONE PARENT
Friday, September 9, 2011
![Page 7: GRAPHS WITH MONGO - files.meetup.com Acyclic Graphs in MongoDB.pdfFriday, September 9, 2011. ONE AND ONLY ONE PARENT Friday, September 9, 2011. DIRECTED ACYCLIC GRAPH NODE CAN HAVE](https://reader034.vdocument.in/reader034/viewer/2022052007/601b26d9939bc507032de221/html5/thumbnails/7.jpg)
DIRECTED ACYCLIC GRAPHNODE CAN HAVE MULTIPLE PARENTS
Friday, September 9, 2011
![Page 8: GRAPHS WITH MONGO - files.meetup.com Acyclic Graphs in MongoDB.pdfFriday, September 9, 2011. ONE AND ONLY ONE PARENT Friday, September 9, 2011. DIRECTED ACYCLIC GRAPH NODE CAN HAVE](https://reader034.vdocument.in/reader034/viewer/2022052007/601b26d9939bc507032de221/html5/thumbnails/8.jpg)
Sub-‐Unit A
Sub-‐Unit B
Sub-‐Unit C
Unit 1Geometry
Baltimore City:4th Grade Math
Friday, September 9, 2011
![Page 9: GRAPHS WITH MONGO - files.meetup.com Acyclic Graphs in MongoDB.pdfFriday, September 9, 2011. ONE AND ONLY ONE PARENT Friday, September 9, 2011. DIRECTED ACYCLIC GRAPH NODE CAN HAVE](https://reader034.vdocument.in/reader034/viewer/2022052007/601b26d9939bc507032de221/html5/thumbnails/9.jpg)
Sub-‐Unit A
Sub-‐Unit B
Sub-‐Unit C
Unit 1Geometry
Baltimore City:4th Grade Math
Sub-‐Unit B
Sub-‐Unit C
DC:4th Grade Math
Unit 1Geometry
Sub-‐Unit A
Friday, September 9, 2011
![Page 10: GRAPHS WITH MONGO - files.meetup.com Acyclic Graphs in MongoDB.pdfFriday, September 9, 2011. ONE AND ONLY ONE PARENT Friday, September 9, 2011. DIRECTED ACYCLIC GRAPH NODE CAN HAVE](https://reader034.vdocument.in/reader034/viewer/2022052007/601b26d9939bc507032de221/html5/thumbnails/10.jpg)
Sub-‐Unit A
Sub-‐Unit B
Sub-‐Unit C
Unit 1Geometry
Baltimore City:4th Grade Math
Sub-‐Unit B
Sub-‐Unit C
DC:4th Grade Math
Unit 1Geometry
Sub-‐Unit A
Multiple Parents :-‐(
Sub-‐Unit A
Friday, September 9, 2011
![Page 11: GRAPHS WITH MONGO - files.meetup.com Acyclic Graphs in MongoDB.pdfFriday, September 9, 2011. ONE AND ONLY ONE PARENT Friday, September 9, 2011. DIRECTED ACYCLIC GRAPH NODE CAN HAVE](https://reader034.vdocument.in/reader034/viewer/2022052007/601b26d9939bc507032de221/html5/thumbnails/11.jpg)
MONGOMAPPER
class Unit include MongoMapper::Document key :children_ids, Array many :children, :in => :children_ids, :class_name => "Unit"end
Friday, September 9, 2011
![Page 12: GRAPHS WITH MONGO - files.meetup.com Acyclic Graphs in MongoDB.pdfFriday, September 9, 2011. ONE AND ONLY ONE PARENT Friday, September 9, 2011. DIRECTED ACYCLIC GRAPH NODE CAN HAVE](https://reader034.vdocument.in/reader034/viewer/2022052007/601b26d9939bc507032de221/html5/thumbnails/12.jpg)
MONGOMAPPER
class Unit include MongoMapper::Document key :children_ids, Array many :children, :in => :children_ids, :class_name => "Unit"end
# in a controller@unit = Unit.find(params[:id])
Friday, September 9, 2011
![Page 13: GRAPHS WITH MONGO - files.meetup.com Acyclic Graphs in MongoDB.pdfFriday, September 9, 2011. ONE AND ONLY ONE PARENT Friday, September 9, 2011. DIRECTED ACYCLIC GRAPH NODE CAN HAVE](https://reader034.vdocument.in/reader034/viewer/2022052007/601b26d9939bc507032de221/html5/thumbnails/13.jpg)
MONGOMAPPER
class Unit include MongoMapper::Document key :children_ids, Array many :children, :in => :children_ids, :class_name => "Unit"end
# in a controller@unit = Unit.find(params[:id])@parents = Unit.where(:children_ids => @unit.id).all
Friday, September 9, 2011
![Page 14: GRAPHS WITH MONGO - files.meetup.com Acyclic Graphs in MongoDB.pdfFriday, September 9, 2011. ONE AND ONLY ONE PARENT Friday, September 9, 2011. DIRECTED ACYCLIC GRAPH NODE CAN HAVE](https://reader034.vdocument.in/reader034/viewer/2022052007/601b26d9939bc507032de221/html5/thumbnails/14.jpg)
Sub-‐Unit A
Sub-‐Unit B
Sub-‐Unit C
Unit 1Geometry
Baltimore City:4th Grade Math
Sub-‐Unit B
Sub-‐Unit C
DC:4th Grade Math
Unit 1Geometry
Sub-‐Unit ASub-‐Unit A
THE BREADCRUMB PROBLEM
Friday, September 9, 2011
![Page 15: GRAPHS WITH MONGO - files.meetup.com Acyclic Graphs in MongoDB.pdfFriday, September 9, 2011. ONE AND ONLY ONE PARENT Friday, September 9, 2011. DIRECTED ACYCLIC GRAPH NODE CAN HAVE](https://reader034.vdocument.in/reader034/viewer/2022052007/601b26d9939bc507032de221/html5/thumbnails/15.jpg)
Sub-‐Unit A
Sub-‐Unit B
Sub-‐Unit C
Unit 1Geometry
Baltimore City:4th Grade Math
Sub-‐Unit B
Sub-‐Unit C
DC:4th Grade Math
Unit 1Geometry
Sub-‐Unit ASub-‐Unit A
THE BREADCRUMB PROBLEM
4th Grade Math > Unit 1: Geometry > Sub-‐Unit C
Friday, September 9, 2011
![Page 16: GRAPHS WITH MONGO - files.meetup.com Acyclic Graphs in MongoDB.pdfFriday, September 9, 2011. ONE AND ONLY ONE PARENT Friday, September 9, 2011. DIRECTED ACYCLIC GRAPH NODE CAN HAVE](https://reader034.vdocument.in/reader034/viewer/2022052007/601b26d9939bc507032de221/html5/thumbnails/16.jpg)
Sub-‐Unit A
Sub-‐Unit B
Sub-‐Unit C
Unit 1Geometry
Baltimore City:4th Grade Math
Sub-‐Unit B
Sub-‐Unit C
DC:4th Grade Math
Unit 1Geometry
Sub-‐Unit ASub-‐Unit A
THE BREADCRUMB PROBLEM
4th Grade Math > Unit 1: Geometry > Sub-‐Unit C
Friday, September 9, 2011
![Page 17: GRAPHS WITH MONGO - files.meetup.com Acyclic Graphs in MongoDB.pdfFriday, September 9, 2011. ONE AND ONLY ONE PARENT Friday, September 9, 2011. DIRECTED ACYCLIC GRAPH NODE CAN HAVE](https://reader034.vdocument.in/reader034/viewer/2022052007/601b26d9939bc507032de221/html5/thumbnails/17.jpg)
Sub-‐Unit A
Sub-‐Unit B
Sub-‐Unit C
Unit 1Geometry
Baltimore City:4th Grade Math
Sub-‐Unit B
Sub-‐Unit C
DC:4th Grade Math
Unit 1Geometry
Sub-‐Unit ASub-‐Unit A
THE BREADCRUMB PROBLEM
4th Grade Math > Unit 1: Geometry > Sub-‐Unit C
Friday, September 9, 2011
![Page 18: GRAPHS WITH MONGO - files.meetup.com Acyclic Graphs in MongoDB.pdfFriday, September 9, 2011. ONE AND ONLY ONE PARENT Friday, September 9, 2011. DIRECTED ACYCLIC GRAPH NODE CAN HAVE](https://reader034.vdocument.in/reader034/viewer/2022052007/601b26d9939bc507032de221/html5/thumbnails/18.jpg)
MONGOMAPPER
Friday, September 9, 2011
![Page 19: GRAPHS WITH MONGO - files.meetup.com Acyclic Graphs in MongoDB.pdfFriday, September 9, 2011. ONE AND ONLY ONE PARENT Friday, September 9, 2011. DIRECTED ACYCLIC GRAPH NODE CAN HAVE](https://reader034.vdocument.in/reader034/viewer/2022052007/601b26d9939bc507032de221/html5/thumbnails/19.jpg)
MONGOMAPPER
class Unit include MongoMapper::Document key :children_ids, Array many :children, :in => :children_ids, :class_name => "Unit"
Friday, September 9, 2011
![Page 20: GRAPHS WITH MONGO - files.meetup.com Acyclic Graphs in MongoDB.pdfFriday, September 9, 2011. ONE AND ONLY ONE PARENT Friday, September 9, 2011. DIRECTED ACYCLIC GRAPH NODE CAN HAVE](https://reader034.vdocument.in/reader034/viewer/2022052007/601b26d9939bc507032de221/html5/thumbnails/20.jpg)
MONGOMAPPER
class Unit include MongoMapper::Document key :children_ids, Array many :children, :in => :children_ids, :class_name => "Unit"
key :course_ids, Array many :courses, :in => :course_ids, :class_name => "Course"end# in a controller@unit = Unit.find(params[:id])@course = Course.find(params[:course_id])
Friday, September 9, 2011
![Page 21: GRAPHS WITH MONGO - files.meetup.com Acyclic Graphs in MongoDB.pdfFriday, September 9, 2011. ONE AND ONLY ONE PARENT Friday, September 9, 2011. DIRECTED ACYCLIC GRAPH NODE CAN HAVE](https://reader034.vdocument.in/reader034/viewer/2022052007/601b26d9939bc507032de221/html5/thumbnails/21.jpg)
MONGOMAPPER
class Unit include MongoMapper::Document key :children_ids, Array many :children, :in => :children_ids, :class_name => "Unit"
key :course_ids, Array many :courses, :in => :course_ids, :class_name => "Course"end# in a controller@unit = Unit.find(params[:id])@course = Course.find(params[:course_id])
# to find a parent@parent = Unit.where(:children_ids => @unit.id, :course_ids => @course.id).first
Friday, September 9, 2011
![Page 22: GRAPHS WITH MONGO - files.meetup.com Acyclic Graphs in MongoDB.pdfFriday, September 9, 2011. ONE AND ONLY ONE PARENT Friday, September 9, 2011. DIRECTED ACYCLIC GRAPH NODE CAN HAVE](https://reader034.vdocument.in/reader034/viewer/2022052007/601b26d9939bc507032de221/html5/thumbnails/22.jpg)
MONGOMAPPER
class Unit include MongoMapper::Document key :children_ids, Array many :children, :in => :children_ids, :class_name => "Unit"
key :course_ids, Array many :courses, :in => :course_ids, :class_name => "Course"end# in a controller@unit = Unit.find(params[:id])@course = Course.find(params[:course_id])
# to find a parent@parent = Unit.where(:children_ids => @unit.id, :course_ids => @course.id).first
Friday, September 9, 2011
![Page 23: GRAPHS WITH MONGO - files.meetup.com Acyclic Graphs in MongoDB.pdfFriday, September 9, 2011. ONE AND ONLY ONE PARENT Friday, September 9, 2011. DIRECTED ACYCLIC GRAPH NODE CAN HAVE](https://reader034.vdocument.in/reader034/viewer/2022052007/601b26d9939bc507032de221/html5/thumbnails/23.jpg)
Sub-‐Unit A
Sub-‐Unit B
Sub-‐Unit C
Unit 1Geometry
Baltimore City:4th Grade Math
Sub-‐Unit B
Sub-‐Unit C
DC:4th Grade Math
Unit 1Geometry
Sub-‐Unit ASub-‐Unit A
THE BREADCRUMB PROBLEM SOLVED
4th Grade Math > Unit 1: Geometry > Sub-‐Unit C
Friday, September 9, 2011
![Page 24: GRAPHS WITH MONGO - files.meetup.com Acyclic Graphs in MongoDB.pdfFriday, September 9, 2011. ONE AND ONLY ONE PARENT Friday, September 9, 2011. DIRECTED ACYCLIC GRAPH NODE CAN HAVE](https://reader034.vdocument.in/reader034/viewer/2022052007/601b26d9939bc507032de221/html5/thumbnails/24.jpg)
LET’S REVIEW
Friday, September 9, 2011
![Page 25: GRAPHS WITH MONGO - files.meetup.com Acyclic Graphs in MongoDB.pdfFriday, September 9, 2011. ONE AND ONLY ONE PARENT Friday, September 9, 2011. DIRECTED ACYCLIC GRAPH NODE CAN HAVE](https://reader034.vdocument.in/reader034/viewer/2022052007/601b26d9939bc507032de221/html5/thumbnails/25.jpg)
LET’S REVIEW
Array keys
make modeling trees simple
give us order for free
Friday, September 9, 2011
![Page 26: GRAPHS WITH MONGO - files.meetup.com Acyclic Graphs in MongoDB.pdfFriday, September 9, 2011. ONE AND ONLY ONE PARENT Friday, September 9, 2011. DIRECTED ACYCLIC GRAPH NODE CAN HAVE](https://reader034.vdocument.in/reader034/viewer/2022052007/601b26d9939bc507032de221/html5/thumbnails/26.jpg)
QUESTIONS?Scott Messinger -‐ @scottmessinger
Friday, September 9, 2011