0
我遍历键/值对列表并对每个键/值执行查找。我可以创建一个单一的查询文档在sql中是一种联合,所以只会有一个数据库调用。在spring mongo db查询中指定多个条件
List<User> userList = new ArrayList<User>();
for (Map accounts:attributes) {
Query query = new Query();
List<Criteria> andCriteriaList = new ArrayList<Criteria>();
accounts.forEach((key, value) -> {
Criteria criteria = Criteria.where((String) key).is(value);
andCriteriaList.add(criteria);
});
query.addCriteria(new Criteria().andOperator(andCriteriaList.toArray(new Criteria[andCriteriaList.size()])));
if (mongoTemplate.exists(query, User.class)) {
userList.add((User)mongoTemplate.find(query, User.class));
//System.out.println(mongoTemplate.find(query, User.class));
}
感谢,
这应该输出的查询可以使用'$ in'运营商。类似于Query query = new Query(); (userList.stream().map(User :: getId).collect(Collectors.toList()))); 列表 users = mongoTemplate.find(query,User.class);' –
Veeram
@Veeram,对不起,我忘记提及查询文档本质上是动态的,条件可能不同。我提供了一个更合适的例子 – maverick
Np。您也可以随时从传入属性中动态地准备“Query”对象。我看到了最新的更新。在进行转换时遇到什么问题? – Veeram