2017-05-09 6 views
0

以下のドキュメントがMOngo DBにあり、最奥の要素からデータを取得するためのJavaコードを書きました。何らかの理由で私にその結果が返ってこない。mondoDBテンプレートを使用したネストされた検索

入力データ

{ 
"_id": "59036b0fa036cc28c8e07db6", 
"srcName":"test1", 
"sections": [{ 
    "_id": "8769669696", 
    "data": [{ 
      "srcKey": "Bonds", 
      "rowIdx": 0, 
      "values": [{ 
        "srcDesc": "Assets", 
        "valuesNumber": 10000 
       }, 
       { 
        "srcDesc": "NonAssets", 
        "valuesNumber": 75500 
       }, 
       { 
        "srcDesc": "liabilities", 
        "valuesNumber": 1566 
       } 
      ] 
     }, 
     { 
      "srcKey": "01", 
      "rowIdx": 1, 
      "values": [{ 
       "srcDesc": "NonAssets", 
       "valuesNumber": 1566 
      }] 
     } 
    ] 
}] 
} 

私はsrcNameという= "TEST1" AND srcKey = "絆" AND srcDesc = "資産" が

Javaコードがどこにある から... valuesNumberを選択されたい結果下記のように

AggregationOperation match=Aggregation.match(Criteria.where("srcName").in("test1") 
      .and("sections.data.values.srcDesc").in("Assets") 
      .and("sections.data.srcKey").in("Bonds")); 


    AggregationOperation unwind1=Aggregation.unwind("sections"); 
    AggregationOperation unwind2=Aggregation.unwind("sections.data"); 
    AggregationOperation unwind3=Aggregation.unwind("sections.data.values"); 

    Aggregation aggregation=Aggregation.newAggregation(match,unwind1,unwind2,unwind3,match); 

    BasicDBObject basicDBObject=mongoTemplate.aggregate(aggregation,"InsStatData",BasicDBObject.class).getUniqueMappedResult(); 
+0

あなたは、1つの部分とsection.dataのセクションの下でsrcNameを参照しています。 2人のうちの1人が間違っています。私はあなたがsrcNameだけでなく、sections.srcNameを参照する必要があると思います。 また、values.srcDesc ...を参照しています。あいまいな参照です(3つともsrcDescという名前です)。 このためにSpringデータを使用することをお勧めします。これは、DTOオブジェクトに値を設定し、プレーンなjavaを使用して必要なものを取得するために、これを大幅に複雑にすることはありません。 – Araymer

+0

@Araymer My appologies、srcNameはセクションの外側にあります。その_idフィールドと一緒に。 – Abhinav1singhal

+0

サンプル文書のコードを実行しただけで、10000として 'valuesNumber'を取得しました。あなたのコードは良く見えます。どのように結果を確認していますか? – Veeram

答えて

0

私の質問を解決しました。マップされた結果を得るためには、適切なマッピングを行わなければなりませんでした。それは元のコードにはありませんでした。 - user3516787今すぐ編集する

関連する問題