【发布时间】:2016-04-13 17:36:54
【问题描述】:
我有结合各种条件的 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 将 $in 运算符参数包装在 qoutes 中,以便 Mongo 将它们视为字符串。真正的查询是这样的:
$in: ["5", "15"]
而不是
$in: [5, 15]
如何告诉 mongoTemplate 不要忽略一种类型的集合值,并且在 Integer 的情况下不要将它们用引号引起来?谢谢!
【问题讨论】:
-
companyIds 是什么类型?,Collection>
-
@Document 注释类中的“companyId”类型是什么?我猜这可能是 StatisticUnit。应该是整数
-
companyIds 是 ArrayList
,StatisticUnit 类中的 companyId 是 Integer 类型。 -
谢谢大家,这是关于集合类型的。
标签: spring mongodb spring-data spring-data-mongodb