我想插入到嵌入数据的数组列表中。我试了好几种方法,但都搞不清楚。我的数据结构是这样的。这里给出的代码只是对原始数据结构的虚拟引用

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

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

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

我想在objz中插入一个新数据
我知道x和y类的id值。
我正在使用Spring MongoTemplate。
spring mongo模板支持这个吗?
有人能帮我渡过难关吗?
提前谢谢。

最佳答案

我明白了,希望它能帮到这里的人,用暴力来做这件事。

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中插入数组列表。
谢谢

09-26 20:26