2014-09-24 5 views
2

Я хочу, чтобы вставить в список массивов во встроенные данные. Я попробовал несколько способов, но не смог разобраться. Моя структура данных что-то вроде этого. Код, указанный здесь только фиктивная ссылка на мою исходную структуру данныхобновление данных с несколькими встроенными данными в mongodb

Class X{ 
    Integer _id; 
    Arraylist<Y> objY; 
    } 

Class Y{ 
    Integer _id; 
    Arraylist<Z> objZ; 
    } 

Class Z{ 
     Integer _id; 
     String value; 
     String oldValue 
     } 

Я хочу, чтобы вставить новые данные в objZ я знаю значение идентификатора класс Х и Y. Я использую Spring mongotemplate , Spring Mongo Template Поддерживает это? Может кто-то помочь мне в этом.

Заранее спасибо.

ответ

3

У меня есть надежда, что это может помочь кому-то здесь, использовать aggregetion для этого.

Query searchUserQuery = new Query((Criteria.where("_id").is("542264c8e4b098972a1cf60c").and("leads._id").is("2")));// _id is the id of class X 
AggregationOperation match = Aggregation.match(searchUserQuery); 
AggregationOperation group = Aggregation.group("objY"); 
Aggregation aggregation = Aggregation.newAggregation(Aggregation.unwind("objY"),match, group); 

List<objY> asd=mongoOperation.aggregate(aggregation, "Name_of_ur_collection", B.class).getMappedResults(); 
ArrayList<Z> s=asd.get(0).getObjZ(); 
s.add("New Data to be added"); 
mongoOperation.updateFirst(searchUserQuery, Update.update("objY.$.objZ", s), X.class); 

Это будет вставлять свой список массив в классе Y.

Благодаря

 Смежные вопросы

  • Нет связанных вопросов^_^