4

MongoDB で Spring Data を使用していますが、Mongo ドキュメントでネストされた要素にアクセスし、それらを Java フィールドに変換する際に問題が発生しています。次の Spring クエリ:

Query query = new Query().limit(1);
query.fields().include("a.d").exclude("_id");
mongoTemplate.find(query, MyObject.class);

次の DBObject を返します。

{ "a" : { "d" : { "e" : 7.0 , "f" : 9.0}}}

「e」と「f」だけに興味があるので、a を使用することにしましたConverter<DBObject, MyObject>。これが私のコンバーター関数です:

public MyObject convert(DBObject dbObject) {

    DBObject dboA = (DBObject) dbObject.get("a");
    DBObject dboD = (DBObject) dboA.get("d");

    MyObject myObj = new MyObject();
    myObj.setE((Double) dboD.get("e"));
    myObj.setF((Double) dboD.get("f"));

    return myObj;
}

深さ 20/30 のネストされたドキュメントがあるとします。私のコンバーターは、書くのが大変です。不器用でよりエレガントなこれを行う方法はありますか?

注釈でこれを行うことは可能ですか? みたいな@Field(value = "a.d.e")...

私は何かが欠けているように感じます.ありがとう!

4

0 に答える 0