gpt4 book ai didi

java - Web应用MongoDB数据库结构

转载 作者:行者123 更新时间:2023-12-02 02:07:36 24 4
gpt4 key购买 nike

我在 Spring boot 中有一个简单的 Web 应用程序来创建 CV 配置文件。个人资料是我的主要模型,我想添加另一个教育部分,我可以轻松添加、删除和更新该部分的新字段。

Profile.class

@Data
@AllArgsConstructor
@Document(collection = "profiles")
public class Profile {

@Id
private String id;
private String firstName;
private String lastName;
private List<Education> education;
}

Education.class

@Data
public class Profile {

private LocalDate startDate;
private LocalDate endDate;
private String description;

}

添加新的教育对象没有问题,但我在查找要在列表中删除或更新的教育对象时遇到问题。

是否有更好的方法在 MongoDB 中创建子文档,以便我可以轻松找到某些对象并删除或更新它们?

最佳答案

首先,如果没有唯一标识符,就无法对 Education 实体执行 CRUD 操作。其次,Education 实体的 CRUD 操作(例如通过 REST)始终在父 Profile 实体的上下文中完成。这意味着例如如果您将两者建模为一个集合,则 Education 实体的更新实际上是 Profile 文档的更新。

删除教育的伪代码如下所示:

removeEducation(profileId, eductionId) { // you need profileId here
Profile profile = findProfile(profileId)
profile.removeEducationById(eductionId) // updates the document
saveProfile(profile)
}

如果您将两个实体建模为单独的集合,情况会有所不同。

关于java - Web应用MongoDB数据库结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57350107/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com