我需要使用Java在我的MongoDB中保存两个集合。其中一个集合是Department,另一个集合是Employee。在某个部门可以有许多员工的情况下,我想保存一个集合,就像要映射到我的部门员工列表中的员工唯一ID一样。
示例:
{
"_id" : ObjectId("598da19250aa4ad2413d4bc0"),
"_class" : "com.department",
"departmentName" : "SAQ-A",
"departmentNumber" : "3_2",
"employee" : [
"id" : "1",
"id" : "2",
"id" : "3"
]
}我能知道用Java在MongoDB中实现它的方法吗?
发布于 2017-08-11 14:37:22
通过提供的文档和标记,我假设您正在使用spring数据来处理mongodb。因此,在这里,您可能希望使用DBRefs将员工绑定到部门。幸运的是,弹簧数据为您提供了@DBRef注释。
雇员班:
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;
@Document
public class Employee {
@Id
private Integer id;
...
}系班:
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.DBRef;
import org.springframework.data.mongodb.core.mapping.Document;
@Document
public class Department {
@Id
private String id;
@DBRef
private Collection<Employee> employees;
...
}MongoDB文档:
{
"_id" : ObjectId("598dc04ac4fdd0e29867ccbb"),
"_class" : "foo.bar.Department",
"employees" : [
{
"$ref" : "employee",
"$id" : 1
},
{
"$ref" : "employee",
"$id" : 2
}
]
}注意:雇员实例必须已经存在于MongoDB中。DBRef将不会以级联样式保存员工。请看这篇关于级联的文章。
发布于 2018-06-07 19:35:07
如果$id不工作,就像这样试一试
“雇员”:{ "$ref“:"employee","id”:1 },{ "$ref“:"employee","id”:2}
https://stackoverflow.com/questions/45636064
复制相似问题