MongoDb 和 Java 外键
MongoDb with Java foreign key
我需要使用 Java 在我的 MongoDB 中保存两个集合。其中一个集合是 Department,另一个集合是 Employee。一个部门可以有很多员工我想保存一个集合,比如必须在我的部门员工列表中映射一个员工唯一 ID。
示例:
{
"_id" : ObjectId("598da19250aa4ad2413d4bc0"),
"_class" : "com.department",
"departmentName" : "SAQ-A",
"departmentNumber" : "3_2",
"employee" : [
"id" : "1",
"id" : "2",
"id" : "3"
]
}
我能知道我在 MongoDB 中使用 Java 实现它的方法是什么吗?
根据提供的文档和标签,我假设您正在使用 spring 数据来处理 mongodb。所以这里你可能想使用 DBRefs 将员工绑定到部门。幸运的是 Spring Data 给了你 @DBRef 注释。
员工class:
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;
@Document
public class Employee {
@Id
private Integer id;
...
}
部门class:
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
}
]
}
注意: Employee 实例必须已经存在于 MongoDB 中。 DBRef 不会以级联方式保存 Employees。看看这篇关于 cascading.
的文章
如果 $id 不起作用,请尝试这样的 id
"employees" : [
{
“$ref”:"employee",
"id":1
},
{
“$ref”:"employee",
"id":2
}
]
我需要使用 Java 在我的 MongoDB 中保存两个集合。其中一个集合是 Department,另一个集合是 Employee。一个部门可以有很多员工我想保存一个集合,比如必须在我的部门员工列表中映射一个员工唯一 ID。
示例:
{
"_id" : ObjectId("598da19250aa4ad2413d4bc0"),
"_class" : "com.department",
"departmentName" : "SAQ-A",
"departmentNumber" : "3_2",
"employee" : [
"id" : "1",
"id" : "2",
"id" : "3"
]
}
我能知道我在 MongoDB 中使用 Java 实现它的方法是什么吗?
根据提供的文档和标签,我假设您正在使用 spring 数据来处理 mongodb。所以这里你可能想使用 DBRefs 将员工绑定到部门。幸运的是 Spring Data 给了你 @DBRef 注释。
员工class:
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;
@Document
public class Employee {
@Id
private Integer id;
...
}
部门class:
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
}
]
}
注意: Employee 实例必须已经存在于 MongoDB 中。 DBRef 不会以级联方式保存 Employees。看看这篇关于 cascading.
的文章如果 $id 不起作用,请尝试这样的 id
"employees" : [ { “$ref”:"employee", "id":1 }, { “$ref”:"employee", "id":2 } ]