可能是重复的问题:
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关系的最佳实践方向。谢谢。