d34*_*k3r 9 ruby ruby-on-rails mongodb mongoid
我理解这不是一个编程问题,我无法找到一个非常清晰和描述性的解决方案.
Ste*_*fan 14
Mongoid的文档很清楚:
嵌入式关系描述存储在数据库中其他文档中的文档.
引用关系描述通过存储关于另一文档的外键数据(通常是id)本身来引用另一集合中的文档的文档.
详细地:
has_many在定义这种性质的关系时,每个文档都存储在其各自的集合中,但子文档包含对父项的"外键"引用.
# The parent band document.
{ "_id" : ObjectId("4d3ed089fb60ab534684b7e9") }
# The child member document.
{
"_id" : ObjectId("4d3ed089fb60ab534684b7f1"),
"band_id" : ObjectId("4d3ed089fb60ab534684b7e9")
}
Run Code Online (Sandbox Code Playgroud)
has_and_belongs_to_many在定义这种性质的关系时,每个文档都存储在其各自的集合中,并且每个文档包含以阵列形式对另一个文档的"外键"引用.
# The band document.
{
"_id" : ObjectId("4d3ed089fb60ab534684b7e9"),
"tag_ids" : [ ObjectId("4d3ed089fb60ab534684b7f2") ]
}
# The tag document.
{
"_id" : ObjectId("4d3ed089fb60ab534684b7f2"),
"band_ids" : [ ObjectId("4d3ed089fb60ab534684b7e9") ]
}
Run Code Online (Sandbox Code Playgroud)
embeds_many使用embeds_many宏嵌入的文档存储为父数据库集合中父级内的哈希数组.
{
"_id" : ObjectId("4d3ed089fb60ab534684b7e9"),
"albums" : [
{
"_id" : ObjectId("4d3ed089fb60ab534684b7e0"),
"name" : "Violator",
}
]
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2159 次 |
| 最近记录: |