您需要在任務和用戶之間建立多對多關係,並且您需要在用戶和任務之間建立額外的一對多關係,指向創建者(用戶)。
沿着這些線路
東西(我通常使用Mongoid,因此請仔細檢查了MongoMapper API中關係中的語法 - 低於..你可能會手動指定鏈接:foreign_key和:類)
的想法是你在模型之間有兩種關係,一種是模擬多對多關係 ,您可以使用它與assigned_users
或assigned_tasks
以及一對多的關係,您可以通過它與creator
任務,或給定用戶的created_tasks
。如果你爲這些關係選擇了這些名字,它將清楚哪個是哪個。
class Task
include MongoMapper::Document
key :title, String , :required => true
key :user_ids , Array
has_many :users, :in => user_ids # , :as => :assigned_users
key :creator_id , ObjectId
belongs_to: user, :as => :creator
end
class User
include MongoMapper::Document
key: name, String, :required => true
has_many :tasks # , :as => :assigned_tasks
has_many :tasks, :as => :created_tasks
end
參見:
http://mongomapper.com/documentation/plugins/associations.html
可能重複http://stackoverflow.com/questions/4253496/mongodb-relationships-for-對象) –
不是重複的 – Tilo