Example usage for com.mongodb.client.model Filters lt

List of usage examples for com.mongodb.client.model Filters lt

Introduction

In this page you can find the example usage for com.mongodb.client.model Filters lt.

Prototype

public static <TItem> Bson lt(final String fieldName, final TItem value) 

Source Link

Document

Creates a filter that matches all documents where the value of the given field is less than the specified value.

Usage

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;
    }
}