[英]Many-to-one relationship in MongoDB
我是MongoDB和NoSQL数据库的新手,我正尝试学习不同的思维方式,每个人在提到NoSQL时都会提到。
我的典型情况是多对一关系。 请不要告诉我MongoDB不是关系数据库,因为我已经知道这一点。 关键是-现实以某种方式起作用,我需要使自己的应用程序反映出来。 现实世界充满关系,如果您的回答是“为您的案例选择一个不同的数据库”,那么我认为MongoDB团队可以关闭他们的业务,因为在这种情况下,他们的产品将完全无用。
因此,我们假设典型的员工/部门关系。 员工链接到一个部门 。 部门可以有零个或多个雇员 。
让我们假设超级简单的模型:
public class Department {
private String name;
// something like...
private List<Employee> employees;
}
public class Employee {
private String name;
// something like...
private Department department;
}
现在,在我的REST API中,我需要一些非常基本的功能:
那么如何使用MongoDB解决这个问题? 我也将Spring Boot与Spring Data一起使用,但是我认为这并不重要。
我遇到了不同的方法,但对我来说似乎都很糟糕。 将部门嵌入员工内部将无法获得所有部门或单个部门员工的列表。 将员工嵌入部门将无法获得所有员工的名单。 使用@DbRef将模拟这种关系,但是如何在不为每个员工调用REST API的情况下获取包括部门名称在内的员工列表呢?
最近,我阅读了很多教程,手册和StackOverflow讨论,但没有找到可接受的答案。 MongoDB真的有可能无法解决这样一个非常简单的问题吗? 这甚至不是问题 ,而是一个标准 -我们周围世界的普遍情况。
谢谢
也许您可以在Employee文档中使用一个简单的departmentId
(具有该departmentId
的Mongo ID的值)?
这样可以避免嵌入文档,并且用例可以正常工作:
这会以可接受的方式为您工作吗?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.