2

埋め込みデータの配列リストに挿入したい。いくつかの方法を試しましたが、うまくいきませんでした。私のデータ構造はこのようなものです。ここに示すコードは、元のデータ構造への単なるダミー参照です

 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 Templateはこれをサポートしていますか? 誰かが私を助けてくれますか?

前もって感謝します。

4

1 に答える 1

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 に挿入されます。

ありがとう

于 2014-09-24T09:09:06.860 に答える