带有 Java 外键的 MongoDb

肯定的

我需要使用 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 中实现它的方式是什么吗?

马德鲁加

通过提供的文档和标签,我假设您正在使用 spring 数据来处理 mongodb。所以在这里你可能想使用 DBRefs 将员工绑定到部门。幸运的是Spring Data为您提供了 @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 中必须已经存在 Employee 实例。DBRef 不会以级联方式保存员工。看看这篇关于级联的文章

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

MongoDB-OneToMany中有外键

来自分类Dev

不会创建带有Sequelize的外键

来自分类Dev

带有外键的PDO插入失败

来自分类Dev

清除带有外键+ Propel的表

来自分类Dev

带有外键的sql循环

来自分类Dev

带有外键的Django if语句

来自分类Dev

不会创建带有Sequelize的外键

来自分类Dev

删除带有外键的表

来自分类Dev

带有外键和枚举的JPA复合键

来自分类Dev

带有只有外键的表的实体设计

来自分类Dev

带有长类型_id的Java mongodb findOne

来自分类Dev

带有MongoDB的Eclipselink java.lang.ClassCastException

来自分类Dev

带有长类型_id的Java mongodb findOne

来自分类Dev

获取带有标签MongoDB Java的最后插入的文档

来自分类Dev

MongoDB文档包含带有Jongo的Java类的子文档

来自分类Dev

带有 JAVA 持久性 API ( JPA) 的 MongoDB

来自分类Dev

使用外键为带有外键的表创建唯一索引

来自分类Dev

根据带有外键的联接更新列中的数据

来自分类Dev

根据带有外键的联接更新列中的数据

来自分类Dev

带有外键约束的Knex截断表

来自分类Dev

带有codeigniter外键插入的doctrine2

来自分类Dev

SQL外键约束,带有附加的列值检查

来自分类Dev

SQLBulkCopy插入使用带有外键对象的实体框架

来自分类Dev

MariaDB VARCHAR外键参考,带有额外的空白

来自分类Dev

django获取带有链接外键的对象的queryset

来自分类Dev

带有外键约束的创建表时出错(级联)

来自分类Dev

在PostgreSQL Flask中删除带有外键的行

来自分类Dev

带有外键的Kendo UI网格下拉菜单

来自分类Dev

如何使用SwampDragon创建带有外键的模型?