List of usage examples for com.mongodb.client.model Filters all
public static <TItem> Bson all(final String fieldName, final Iterable<TItem> values)
From source file:org.opencb.commons.datastore.mongodb.MongoDBQueryUtils.java
License:Apache License
public static <T> Bson createFilter(String mongoDbField, List<T> queryValues, ComparisonOperator comparator, LogicalOperator operator) {//from w w w .j av a2 s .co m Bson filter = null; if (queryValues != null && queryValues.size() > 0) { if (comparator.equals(ComparisonOperator.IN) || comparator.equals(ComparisonOperator.NOT_IN) || comparator.equals(ComparisonOperator.ALL)) { switch (comparator) { case IN: filter = Filters.in(mongoDbField, queryValues); break; case NOT_IN: filter = Filters.nin(mongoDbField, queryValues); break; case ALL: filter = Filters.all(mongoDbField, queryValues); break; default: break; } } else { // If there is only on element in the array then it does not make sense to create an OR or AND filter if (queryValues.size() == 1) { filter = createFilter(mongoDbField, queryValues.get(0), comparator); } else { List<Bson> bsonList = new ArrayList<>(queryValues.size()); for (T queryItem : queryValues) { Bson filter1 = createFilter(mongoDbField, queryItem, comparator); if (filter1 != null) { bsonList.add(filter1); } } if (operator.equals(LogicalOperator.OR)) { filter = Filters.or(bsonList); } else { filter = Filters.and(bsonList); } } } } return filter; }