我想插入嵌入数据中的数组列表。我尝试了几种方法,但无法解决这个问题。我的数据结构是这样的。这里给出的代码只是对原始数据结构的虚拟引用
Class X{
Integer _id;
Arraylist<Y> objY;
}
Class Y{
Integer _id;
Arraylist<Z> objZ;
}
Class Z{
Integer _id;
String value;
String oldValue
}
我想在objZ中插入新数据 我知道Class X和Y的id值。 我正在使用 Spring mongotemplate 。 Spring Mongo模板是否支持此功能? 有人可以帮我解决这个问题。
提前致谢。
答案 0 :(得分:3)
我希望它可以帮助这里的人,使用聚合来做到这一点。
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类中插入您的数组列表。
谢谢