2016-04-13 8 views
0

私はさまざまな基準の組み合わせでmongoTemplateクエリを持っています。このクエリでは、Idのコレクションでドキュメントを選択する必要があります。だから私は "in"メソッドを使う。

Query query = new Query(Criteria.where("sizeId").is(sizeId)); 

query.addCriteria(Criteria.where("companyId").in(companyIds)); 

List<StatisticUnit> result = mongoTemplate.find(query, StatisticUnit.class); 

"companyIdsは" 整数値のリストです:

は、ここに私のコードです。

MongoTemplateがqoutesに演算子引数をラップするので、MongoがそれらをStringsと見なすため、結果はありません。代わりに、コレクション値の種類を無視しないと整数の場合は引用符でそれらをラップしないようmongoTemplateを伝えるためにどのように

$in: [5, 15] 

$in: ["5", "15"] 

:本当のクエリは次のようになりますか?ありがとう!

+0

companyIdsどのような種類の?、コレクション Koitoer

+0

@Document注釈付きクラスの「companyId」の種類は何ですか?私はStatisticUnitかもしれないと思います。 Integerである必要があります。 – Ulises

+0

companyIdsはArrayList です.StatisticUnitクラスのcompanyIdはInteger型です。 –

答えて

0

私はこの問題を自分で解決しました。私は、ArrayListの代わりにHashSetを使用するとすべてが正常になります。これが他の人に役立つことを願っています

関連する問題