【发布时间】:2019-02-08 10:12:43
【问题描述】:
我在 Mongodb 中有用户和照片文档。每张照片都属于用户,并且可以在用户之间共享一张照片。假设 user1 有 p1、p2、p3 照片,而 user2 有 p3、p4、p5 照片。如果我删除 user1(手动使用 Compass 等工具),p1 和 p2 也应该被删除,而不是 p3。如何实现,需要定义什么样的数据库结构?
目前,如果我删除 user1,则不会删除任何照片并保留在数据库中,这会导致从使用数据库的应用程序的角度来看数据库已损坏。
它的 Spring Boot 应用和 User 和 Photo 声明为:
import lombok.Builder;
import lombok.Data;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.DBRef;
import org.springframework.data.mongodb.core.mapping.Document;
@Document
@Data
@Builder
public class User {
@Id
private String id;
@DBRef
private Set<Photo> photos;
private String name;
}
@Document
@Data
@Builder
public class Photo {
@Id
private String id;
private String fileName;
}
【问题讨论】:
标签: mongodb spring-boot nosql