Я работаю над простой реализацией Spring MongoDB.
Мои объекты выглядят так:
@Document(collection = "Book")
public class Book {
@Id
private ObjectId id; // Note: This should be BinInt, String or ObjectId
private List<Author> author;
@Indexed // Note: On which fields we write where clause
private String bookName;
private int price;
private int rating;
private Date publishedDate;
private Map<String, String> contentIndex = new HashMap<>();
private List<String> tags;
private Publisher publisher;
@PersistenceConstructor
public Book(ObjectId id, List<Author> author, String bookName, String firstName, String lastName, int price, int rating, Date publishedDate, Map<String, String> contentIndex, List<String> tags, Publisher publisher) {
}
@Data
public class Publisher {
@Id
private ObjectId id;
private String firstName;
private String lastName;
private int bookCount;
private Date dob;
private String email;
@PersistenceConstructor
public Publisher(ObjectId id, String firstName, String lastName, int bookCount, Date dob, String email) {
}
@Data
public class Author {
@Id
private ObjectId id;
private String firstName;
private String lastName;
private String email;
private int bookCount;
private Date dob;
@PersistenceConstructor
public Author(ObjectId id, String firstName, String lastName, int bookCount, Date dob)
}
Я могу выполнять все основные операции CRUD над объектом BooK, просто расширяя MongoRepositoy. Теперь я пытаюсь выполнить те же операции CRUD для встроенных объектов Publisher и массива авторов в объекте BooK.
Я пытаюсь это сделать, но не нашел решения. Я просмотрел документацию Spring MongoDB о Query and Update и несколько вопросов о переполнении стека. Но пока я не могу этого сделать.
Я хочу сделать следующее:
- как обновить значения полей в объекте book.publisher.
- как обновить поля book.authors [1].
- как добавить нового автора в объект списка book.authors.