我对NoSQL的处理方式很新,所以请原谅我,如果我只是想到这个完全错误(我觉得我是) .
我的应用程序包含用户和组织,用户必须拥有并属于具有成员或所有者角色的组织 .
目前在我的用户架构中我有:
orgs:[{type:Schema.Types.ObjectId,ref:'Org'}]
在我的组织架构中,我有:
成员:[{type:Schema.Types.ObjectId,ref:'User'}]
但我还要附上会员或所有者的角色 .
这是我应该在实际参考中添加的东西,如:
成员:[{type:Schema.Types.ObjectId,ref:'User',role:String}]
或者角色应该在架构的其他地方?处理这个问题的正确方法是什么,或者是否有一种不同的方式来模式化这个更合适的方法?
一旦我为此设置了正确的架构,有一个如何使用这个roled ref创建一些用户/组织的示例会很有帮助 .
1 回答
你可以通过对你所拥有的东西进行一些小改动来做到这一点 . 我以相同的方式将消息存储在应用程序中(文本和发件人) .
这是你可以做的:
然后,当您要将一个或多个成员添加到组织时(假设您已经单独创建了一个组织和一个用户):
当您想要找到包含其成员的组织时,您可以:
如果您确实需要为成员 - >组织复制每个成员的组织 - >成员关系,请仔细考虑 . 如果这确实很重要,在成功将用户添加到组织后,在回调中,您可以执行第二次查询以更新用户的orgs字段,就像上面一样 .