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

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

Introduction

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

Prototype

public static <TItem> Bson lte(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 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  ww .  jav  a2 s  . 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.//from   w ww  .  j  a  va  2s  .c om
 *
 * @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;
}