【发布时间】:2011-03-06 06:20:16
【问题描述】:
我对 Mongoid/MongoDB 比较陌生,我有一个关于如何为特定的多对多关系建模的问题。
我有一个User 模型和一个Project 模型。用户可以属于多个项目,每个项目成员包括一个角色(例如“管理员”、“编辑”或“查看者”)。如果我使用的是 ActiveRecord,那么我会使用has_many :through 在User 和Project 之间建立多对多关联,然后我会在连接表中放置一个角色字段。
在 MongoDB 中对此场景进行建模的好方法是什么?如何使用 Mongoid 声明该模型?下面的示例似乎是对此进行建模的好方法,但我不知道如何优雅地声明 User 和嵌入的 ProjectMembership 与 Mongoid 之间的关系关联。
提前致谢!
db.projects.insert(
{
"name" : "Test project",
"memberships" : [
{
"user_id" : ObjectId("4d730fcfcedc351d67000002"),
"role" : "administrator"
},
{
"role" : "editor",
"user_id" : ObjectId("4d731fe3cedc351fa7000002")
}
]
}
)
db.projects.ensureIndex({"memberships.user_id": 1})
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 mongodb mongoid