ID: 24001 - Model self-reference using Mongoid ORM
Posted by layonman98 on Sun Dec 05 03:36:35 UTC 2010. Language ruby

class User

  include Mongoid::Document
  identity :type => String
  field :name
  references_many :fans, :stored_as => :array, :class_name => 'User'

end

# Examples
chuck = User.create :name => 'Chuck'
chuck.fans << andy = User.create( :name => 'Andy' )
chuck.fans << katie = User.create( :name => 'Katie' )
chuck.fans << mary = User.create( :name => 'Mary' )

ruby-1.8.7-p302 > pp chuck
#<User _id: 4cfb06e5434acf498b000001, name: "Chuck", fan_ids: ["4cfb06e5434acf498b000002", "4cfb06e5434acf498b000003", "4cfb06e6434acf498b000004"]>
 => nil
ruby-1.8.7-p302 > pp chuck.fans.map
[#<User _id: 4cfb06e5434acf498b000002, name: "Andy", fan_ids: []>,
 #<User _id: 4cfb06e5434acf498b000003, name: "Katie", fan_ids: []>,
 #<User _id: 4cfb06e6434acf498b000004, name: "Mary", fan_ids: []>]