mongo_tree icon indicating copy to clipboard operation
mongo_tree copied to clipboard

Ruby / Rails gem or plugin to add a hierarchy tree to MongoRecord (MongoDB) models.

= MongoTree

This is a simple way to add parent / child relationships to a Rails model that uses MongoDB and the MongoRecord plugin (not the Mongo ActiveRecord plugin.)

== Installation

Gem:

sudo gem install mongo_tree

Plugin:

script/plugin install git://github.com/mully/mongo_tree.git

== Usage

To use mongo tree, simply add the word "mongo_tree" to your model.

class Taxon < MongoRecord::Base mongo_Tree end

Add Child: @root = Taxon.new({:name=>"ROOT", :content=>"ROOT content"}) @root.save @child1 = Taxon.new({:name=>"Child", :content=>"Child content"}) @root << @child1 @grandchild = Taxon.new({:name=>"GrandChild", :content=>"Grand content"}) @child1 << @grandchild

Access Children: @root.children #access all first level childrent @root.descendants #access all descendants (children, grandchildren, etc) @root.parent #parent object @root.ancestors #all ancestors (parent, grandparents, etc)

Delete Children: @root.remove!(@child1) #remove child from root. the child will be resaved in it's own root node.

== References

http://mongodb.org http://github.com/mongodb/mongo-activerecord-ruby/tree/master http://www.koders.com/ruby/fid995C0ABC8DD9B624D7C4E4D9EE319F374E4CA7FA.aspx?s=cdef%3Atree#L11 http://wiki.apache.org/couchdb/How_to_store_hierarchical_data

Copyright (c) 2009 Squeejee, released under the MIT license