List of usage examples for com.mongodb.client.model Filters lt
public static <TItem> Bson lt(final String fieldName, final TItem value)
From source file:org.jnosql.diana.mongodb.document.DocumentQueryConversor.java
License:Open Source License
public static Bson convert(DocumentCondition condition) { Document document = condition.getDocument(); Object value = document.getValue().get(); switch (condition.getCondition()) { case EQUALS:/*from w w w.j a va2 s . c o m*/ return Filters.eq(document.getName(), value); case GREATER_THAN: return Filters.gt(document.getName(), value); case GREATER_EQUALS_THAN: return Filters.gte(document.getName(), value); case LESSER_THAN: return Filters.lt(document.getName(), value); case LESSER_EQUALS_THAN: return Filters.lte(document.getName(), value); case IN: return Filters.in(document.getName(), value); case LIKE: return Filters.regex(document.getName(), value.toString()); case AND: List<Document> andList = condition.getDocument().getValue().get(new TypeReference<List<Document>>() { }); return Filters.and(andList.stream().map(d -> new BasicDBObject(d.getName(), d.getValue().get())) .toArray(BasicDBObject[]::new)); case OR: List<Document> orList = condition.getDocument().getValue().get(new TypeReference<List<Document>>() { }); return Filters.or(orList.stream().map(d -> new BasicDBObject(d.getName(), d.getValue().get())) .toArray(BasicDBObject[]::new)); default: throw new UnsupportedOperationException( "The condition " + condition.getCondition() + " is not supported from mongoDB diana driver"); } }
From source file:org.opencb.commons.datastore.mongodb.MongoDBQueryUtils.java
License:Apache License
public static <T> Bson createFilter(String mongoDbField, T queryValue, ComparisonOperator comparator) { Bson filter = null;// w ww.j av a 2 s . c om if (queryValue != null) { if (queryValue instanceof String) { switch (comparator) { case EQUALS: filter = Filters.eq(mongoDbField, queryValue); break; case NOT_EQUALS: filter = Filters.ne(mongoDbField, queryValue); break; case EQUAL_IGNORE_CASE: filter = Filters.regex(mongoDbField, queryValue.toString(), "i"); break; case STARTS_WITH: filter = Filters.regex(mongoDbField, "^" + queryValue + "*"); break; case ENDS_WITH: filter = Filters.regex(mongoDbField, "*" + queryValue + "$"); break; case REGEX: filter = Filters.regex(mongoDbField, queryValue.toString()); break; case TEXT: filter = Filters.text(String.valueOf(queryValue)); break; default: break; } } else { switch (comparator) { case EQUALS: filter = Filters.eq(mongoDbField, queryValue); break; case NOT_EQUALS: filter = Filters.ne(mongoDbField, queryValue); break; case GREATER_THAN: filter = Filters.gt(mongoDbField, queryValue); break; case GREATER_THAN_EQUAL: filter = Filters.gte(mongoDbField, queryValue); break; case LESS_THAN: filter = Filters.lt(mongoDbField, queryValue); break; case LESS_THAN_EQUAL: filter = Filters.lte(mongoDbField, queryValue); break; default: break; } } } return filter; }
From source file:org.opencb.commons.datastore.mongodb.MongoDBQueryUtils.java
License:Apache License
/** * Generates a date filter.//from w w w . ja v a 2 s .c o m * * @param mongoDbField Mongo field. * @param dateValues List of 1 or 2 strings (dates). Only one will be expected when something like the following is passed: * =20171210, 20171210, >=20171210, >20171210, <20171210, <=20171210 * When 2 strings are passed, we will expect it to be a range such as: 20171201-20171210 * @param comparator Comparator value. * @param type Type of parameter. Expecting one of {@link QueryParam.Type#DATE} or {@link QueryParam.Type#TIMESTAMP} * @return the Bson query. */ private static Bson createDateFilter(String mongoDbField, List<String> dateValues, ComparisonOperator comparator, QueryParam.Type type) { Bson filter = null; Object date = null; if (QueryParam.Type.DATE.equals(type)) { date = convertStringToDate(dateValues.get(0)); } else if (QueryParam.Type.TIMESTAMP.equals(type)) { date = convertStringToDate(dateValues.get(0)).getTime(); } if (date != null) { switch (comparator) { case BETWEEN: if (dateValues.size() == 2) { Date to = convertStringToDate(dateValues.get(1)); if (QueryParam.Type.DATE.equals(type)) { filter = new Document(mongoDbField, new Document().append("$gte", date).append("$lt", to)); } else if (QueryParam.Type.TIMESTAMP.equals(type)) { filter = new Document(mongoDbField, new Document().append("$gte", date).append("$lt", to.getTime())); } } break; case EQUALS: filter = Filters.eq(mongoDbField, date); break; case GREATER_THAN: filter = Filters.gt(mongoDbField, date); break; case GREATER_THAN_EQUAL: filter = Filters.gte(mongoDbField, date); break; case LESS_THAN: filter = Filters.lt(mongoDbField, date); break; case LESS_THAN_EQUAL: filter = Filters.lte(mongoDbField, date); break; default: break; } } return filter; }
From source file:step.plugins.datatable.DateRangeCriterium.java
License:Open Source License
@Override public Bson createQuery(String attributeName, String expression) { try {// ww w. j a va 2s. c o m Date from; synchronized (DATE_FORMAT) { from = DATE_FORMAT.parse(expression); } Calendar c = Calendar.getInstance(); c.setTime(from); c.add(Calendar.DATE, 1); Date to = c.getTime(); return Filters.and(Filters.lt(attributeName, to.getTime()), Filters.gte(attributeName, from.getTime())); } catch (ParseException e) { return null; } }