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

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

Introduction

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

Prototype

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

Source Link

Document

Creates a filter that matches all documents where the value of the given field is greater than or equal to the specified value.

Usage

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;//from  w w w  .j a v  a 2s .c  o m

    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./*ww w.  ja va 2s. 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 {//from ww w.  j  av  a  2  s  .  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;
    }
}