2016-04-13 63 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將它們視爲字符串。真正的查詢看起來像這樣的:

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

代替

$in: [5, 15] 

如何判斷mongoTemplate不要忽視一個類型的集合值,而不是在整數的情況下,將它們包裝在引號?謝謝!

+0

companyIds是什麼類型?Collection – Koitoer

+0

@Document註釋類中的「companyId」是什麼類型?我猜可能是StatisticUnit。應該是整數 – Ulises

+0

companyIds是ArrayList ,StatisticUnit類中的companyId具有Integer類型。 –

回答

0

我自己解決了這個問題。當我使用HashSet而不是ArrayList時,一切都很順利。希望這可以幫助別人。