У меня есть пользовательские и фотодокументы в Mongodb. Каждая фотография принадлежит пользователю, и фотография может быть передана пользователям. Допустим, у user1 есть фотографии p1, p2, p3, а у user2 - фотографии p3, p4, p5. Если я удаляю user1 (вручную, используя такие инструменты, как Compass), p1 и p2 также должны быть удалены, но не p3. Как этого добиться и какую структуру базы данных мне нужно определить?
В настоящее время, если я удаляю user1, фотографии не удаляются и остаются в базе данных, что теперь делает базу данных поврежденной с точки зрения приложения, использующего базу данных.
Его приложение Spring Boot, пользователь и фотография объявлены как:
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;
}