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