我有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不要忽略一种类型的集合值,而不是在Integer的情况下将它们包装在引号中?谢谢!
1 回答
我自己解决了这个问题 . 当我使用HashSet而不是ArrayList时,一切顺利 . 希望这有助于其他人 .