Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb Mongoid关系属性_Mongodb_Mongoid - Fatal编程技术网

Mongodb Mongoid关系属性

Mongodb Mongoid关系属性,mongodb,mongoid,Mongodb,Mongoid,保存关系属性的最佳方法是什么?例如,我有模型Person和Project(M:N关系)。我想在项目中保存人员角色。在关系数据库中,它将是连接表person\u项目中的一个属性。在Mongoid(RoR)中实现这一点的最佳方式是什么 第二个问题:我应该在两侧或一侧保存多对多关系的ID吗?文档: Mongoid使用数组在两个集合中存储IDPersoncollection有一个字段project\u id,projectcollection有一个字段Person\u id,我不会在project中存储

保存关系属性的最佳方法是什么?例如,我有模型Person和Project(M:N关系)。我想在项目中保存人员角色。在关系数据库中,它将是连接表person\u项目中的一个属性。在Mongoid(RoR)中实现这一点的最佳方式是什么

第二个问题:我应该在两侧或一侧保存多对多关系的ID吗?

文档:


Mongoid使用数组在两个集合中存储ID
Person
collection有一个字段
project\u id
project
collection有一个字段
Person\u id
,我不会在project中存储用户或特定用户角色(超级用户除外,或出于最终的缓存原因)。因为有两个生命周期,当你做项目的时候,你可能不会和用户混在一起。 因此,首先,我会将角色设置存储在以下人员中:

{
 _id : Obj{},
 projects : [
   {project_one : role_name}, //use a name if name is unique if not use project_id as key
   {project_two : role_name}
 ]
}
或者更容易,但需要更多的空间

{
_id : Obj{},
projects : [
  {project_id : project_one,
   role : role_name},...
]
}

即使您可以在项目中存储一些与用户相关的内容,我也会根据用户测试角色。

请仔细阅读。我没有问如何构建M:N关系,而是问在哪里保存此关系的“role”属性。
{
_id : Obj{},
projects : [
  {project_id : project_one,
   role : role_name},...
]
}