Я изучал реализацию MongoDB в Spring Boot.
Однако у меня возникла проблема со сложными запросами.
Я не могу найти правильного решения о том, как реализовать сложные запросы к MongoDB из Spring при загрузке.
Я запрашиваю базу данных с реализацией интерфейса MongoRepository
.
Допустим, у меня есть три коллекции:
- Человек - 1 человек может иметь много домашних животных.
- Pet - 1 питомец может иметь 1 PetToy и 1 человека, которому он принадлежит.
- PetToy - 1 PetToy может принадлежать 1 питомцу.
POJO классы ниже
Чего я хочу достичь?
Я хочу сделать запрос, в который мне был бы возвращен Человек, у питомца которого есть Игрушка (PetToy) с именем «Тедди».
Я не мог найти способ, как это сделать. Кроме того, лучше ли даже использовать такие сложные запросы или лучше писать больше маленьких в MongoDB?
POJOs:
@Document
@Data
@ToString
public class Person {
@Id
private String id;
private String firstname;
private String lastname;
private int age;
@DBRef
private Pet pet;
}
@Document
@Data
@ToString
public class Pet {
@Id
private String id;
private String name;
private int age;
@DBRef
private List<PetToy> toys;
}
@Document
@Data
@ToString
public class PetToy {
@Id
private String id;
private String name;
}
Я пытался использовать MongoRepositories; однако я не смог сделать сложный запрос.
Как написать такой запрос в MongoDB из Spring Boot?
Заранее большое спасибо.