$or
. बनाने के लिए आप अपने कोड को रिफलेक्टर कर सकते हैं भाव। कोई स्पष्ट $and
. नहीं ऑपरेटर की जरूरत है।
कुछ इस तरह
Query orQuery = new Query();
Criteria orCriteria = new Criteria();
List<Criteria> orExpression = new ArrayList<>();
for (Map<String, Object> accounts : attributes) {
Criteria expression = new Criteria();
accounts.forEach((key, value) -> expression.and(key).is(value));
orExpression.add(expression);
}
orQuery.addCriteria(orCriteria.orOperator(orExpression.toArray(new Criteria[orExpression.size()])));
List<User> userList = mongoOperations.find(orQuery, User.class);
यह क्वेरी आउटपुट करना चाहिए जैसे
{ "$or" : [{ "key1" : "value1", "key2" : "value2" }, { "key3" : "value3", "key4" : "value4" }] }