使用$ in子句

时间:2016-04-13 17:36:55

标签: spring mongodb spring-data spring-data-mongodb

我的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中包含$ in运算符参数,以便Mongo将它们视为字符串。真实查询如下所示:

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

而不是

$in: [5, 15]

如何告诉mongoTemplate不要忽略某种类型的集合值,而不是在Integer的情况下将它们包装在引号中?谢谢!

1 个答案:

答案 0 :(得分:0)

我自己解决了这个问题。当我使用HashSet而不是ArrayList时,一切顺利。希望这有助于其他人。