如何在Mongodb中建立多对多关系?

4

可能是重复的问题:
MongoDB多对多关联

我已经使用MySQL / SQLite多年了,但在如何在MongoDB中处理关系方面,特别是多对多关系方面,我遇到了很大的困难,我不知道什么是最佳实践。

好吧,我有一个带有company的项目。 employee可以为多个公司工作,公司也可以拥有多个员工。 连接表称为contracts

即: company -< contracts >- employees

字段。

company:id,名称

contracts:长度,薪水,公司ID,员工ID

employee:id,名称

我的实际最终应用程序每个表都有20多个字段,但我现在保持简单。

这就是当我尝试在Mongodb中复制它时,我的头开始疼痛的地方。

即;

// Idea 1. Put everything in one hierarchy. 
// But, What should I be putting in contracts?
// Where does employees go?
//
// Pseduocode (based from MongoDB online browser shell)
var company = {name:'Company A', contracts:[????]};  

问题在于,如果一个员工可以为3家不同的公司工作。我将需要针对他在每个公司工作的情况重复员工内容3次。
因此,为了减少重复内容的数量,我需要分离公司、员工和合同文档,是这样吗?
如果我将它们分开,如何进行连接,连接在哪里呢?
是否应该在我的公司文档中存储MongoDB为每行/项生成的非常长的唯一ID?
如果是这样,我该怎么拿回我的东西呢?
即:列出所有在一家签约时间少于10周的公司工作的员工列表。
正如您所看到的,我仍然有点困扰MongoDB,并且仍然按照SQL类型的方式进行思考,但我希望有人至少能指出处理和MongoDB中的ManyToMany关系的最佳实践方向。谢谢。

1
这是个重复的问题。在这里重复相同的答案没有帮助。 - user2665694
1个回答

3

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接