но хорошо в весенней загрузке. Я хочу использовать операции CRUD во встроенном документе. Я старался изо всех сил с Spring boot, но сегодня не повезло. Структура, которую я попробовал, приведена ниже. Мне нужно обновить категорию 2, удалить категорию 3 и, наконец, добавить новую категорию.
Документ
@Document(collection="reel")
public class Reel{
@Id
private ObjectId _id;
private String name;
List<Category> category;
// No arg & arg constructoe, getters and setters
}
// I haven't use @Document
public class category{
ptivate ObjectId _id=new ObjectId();
private String categoryName;
private String type;
// No arg & arg constructoe, getters and setters
}
Структура, которая у меня есть,
{
"_id": {
"$oid": "5e8426717a16fb5b755edebd"
},
"name": "Name",
"category": [
{
"_id": {
"$oid": "5e8453c88056df756a242cd8"
},
"categoryName": "category 1",
"type": "type 1"
},
{
"_id": {
"$oid": "5e8453c88056df756a242csd8"
},
"categoryName": "category 2",
"type": "type 2"
},
{
"_id": {
"$oid": "5e8453c8805sd756a242cd8"
},
"categoryName": "category 3",
"type": "type 3"
}
],
"_class": "com.videoappservice.model.Reel"
}
Что бы я ни пытался обновить,
public Category updateReelCategoryById(ObjectId id, String categoryName, String categoryType) {
// Here I pass ID of category
Query query=new Query().addCriteria(Criteria.where("_id").is(id));
Update update= new Update()
.set("reel.category.type",categoryType)
.set("reel.category.categoryName",categoryName);
Category result=mongoTemplate.findAndModify(query,update, Category.class);
return result;
}
Заранее спасибо. Пожалуйста, дайте мне знать, правильно ли моё моделирование