Example usage for org.springframework.data.mongodb.core.query Criteria Criteria

List of usage examples for org.springframework.data.mongodb.core.query Criteria Criteria

Introduction

In this page you can find the example usage for org.springframework.data.mongodb.core.query Criteria Criteria.

Prototype

public Criteria(String key) 

Source Link

Usage

From source file:org.oncoblocks.centromere.mongodb.MongoQueryUtils.java

/**
 * Converts a collection of {@link QueryCriteria}
 *  objects into Spring Data MongoDB {@link Criteria}
 *  objects, used to build a {@link Query}.
 *
 * @param queryCriterias list of query parameters to be converted.
 * @return {@link Criteria} representation of the dataimport.
 *//*from w w w  . ja va  2s. com*/
public static Criteria getQueryFromQueryCriteria(Iterable<QueryCriteria> queryCriterias) {
    List<Criteria> criteriaList = new ArrayList<>();
    for (QueryCriteria queryCriteria : queryCriterias) {
        Criteria criteria = null;
        if (queryCriteria != null) {
            switch (queryCriteria.getEvaluation()) {
            case EQUALS:
                criteria = new Criteria(queryCriteria.getKey()).is(queryCriteria.getValue());
                break;
            case NOT_EQUALS:
                criteria = new Criteria(queryCriteria.getKey()).not().is(queryCriteria.getValue());
                break;
            case IN:
                criteria = new Criteria(queryCriteria.getKey()).in((Collection) queryCriteria.getValue());
                break;
            case NOT_IN:
                criteria = new Criteria(queryCriteria.getKey()).nin((Collection) queryCriteria.getValue());
                break;
            case IS_NULL:
                criteria = new Criteria(queryCriteria.getKey()).is(null);
                break;
            case NOT_NULL:
                criteria = new Criteria(queryCriteria.getKey()).not().is(null);
                break;
            case GREATER_THAN:
                criteria = new Criteria(queryCriteria.getKey()).gt(queryCriteria.getValue());
                break;
            case GREATER_THAN_EQUALS:
                criteria = new Criteria(queryCriteria.getKey()).gte(queryCriteria.getValue());
                break;
            case LESS_THAN:
                criteria = new Criteria(queryCriteria.getKey()).lt(queryCriteria.getValue());
                break;
            case LESS_THAN_EQUALS:
                criteria = new Criteria(queryCriteria.getKey()).lte(queryCriteria.getValue());
                break;
            case BETWEEN:
                criteria = new Criteria().andOperator(
                        Criteria.where(queryCriteria.getKey()).gt(((List) queryCriteria.getValue()).get(0)),
                        Criteria.where(queryCriteria.getKey()).lt(((List) queryCriteria.getValue()).get(1)));
                break;
            case OUTSIDE:
                criteria = new Criteria().orOperator(
                        Criteria.where(queryCriteria.getKey()).lt(((List) queryCriteria.getValue()).get(0)),
                        Criteria.where(queryCriteria.getKey()).gt(((List) queryCriteria.getValue()).get(1)));
                break;
            case BETWEEN_INCLUSIVE:
                criteria = new Criteria().andOperator(
                        Criteria.where(queryCriteria.getKey()).gte(((List) queryCriteria.getValue()).get(0)),
                        Criteria.where(queryCriteria.getKey()).lte(((List) queryCriteria.getValue()).get(1)));
                break;
            case OUTSIDE_INCLUSIVE:
                criteria = new Criteria().orOperator(
                        Criteria.where(queryCriteria.getKey()).lte(((List) queryCriteria.getValue()).get(0)),
                        Criteria.where(queryCriteria.getKey()).gte(((List) queryCriteria.getValue()).get(1)));
                break;
            case LIKE:
                criteria = new Criteria(queryCriteria.getKey()).regex((String) queryCriteria.getValue());
                break;
            case NOT_LIKE:
                // TODO
                break;
            case STARTS_WITH:
                criteria = new Criteria(queryCriteria.getKey()).regex("^" + queryCriteria.getValue());
                break;
            case ENDS_WITH:
                criteria = new Criteria(queryCriteria.getKey()).regex(queryCriteria.getValue() + "$");
                break;
            default:
                criteria = new Criteria(queryCriteria.getKey()).is(queryCriteria.getValue());
            }
            criteriaList.add(criteria);
        }
    }
    return criteriaList.size() > 0 ? new Criteria().andOperator(criteriaList.toArray(new Criteria[] {})) : null;
}

From source file:com.ewcms.common.query.mongo.CriteriaWapper.java

/**
 * {@code criteriaChain}??{@code super.criteriaChina}
 * /*from   ww  w  .j  av  a  2  s  . c  om*/
 * @param criteria
 */
public Criteria orOperator(Criteria... criteria) {
    super.orOperator(criteria);
    BasicBSONList bsonList = createCriteriaList(criteria);
    criteriaChain.add(new Criteria("$or").is(bsonList));
    return this;
}

From source file:com.ewcms.common.query.mongo.CriteriaWapper.java

/**
 * {@code criteriaChain}??{@code super.criteriaChina}
 * /*  w w w . ja va2  s  .co m*/
 * @param criteria
 */
public Criteria norOperator(Criteria... criteria) {
    super.norOperator(criteria);
    BasicBSONList bsonList = createCriteriaList(criteria);
    criteriaChain.add(new Criteria("$nor").is(bsonList));
    return this;
}

From source file:eu.cloudwave.wp5.feedbackhandler.repositories.ApplicationRepositoryImpl.java

/**
 * {@inheritDoc}/*w  ww. ja  v a 2s  . co m*/
 */
@Override
public DbApplication findOne(final String applicationId) {
    final Criteria criteria = new Criteria(APPLICATION_ID).is(applicationId);
    return mongoTemplate.findOne(new Query(criteria), DbApplicationImpl.class);
}

From source file:org.starfishrespect.myconsumption.server.business.repositories.repositoriesimpl.UserRepositoryImpl.java

@Override
public boolean userExists(String name) {
    Query existingQuery = new Query(new Criteria("name").is(name));
    return mongoOperation.exists(existingQuery, User.class, COLLECTION_NAME);
}

From source file:org.starfishrespect.myconsumption.server.business.repositories.repositoriesimpl.SensorRepositoryImpl.java

@Override
public Sensor insertSensor(Sensor sensor) {
    Criteria criteria = new Criteria("type").is(sensor.getType());
    Criteria settingsCriterias = null;//from w  ww  .  ja  v a 2  s .  co m
    for (String key : sensor.getSensorSettings().getKeys()) {
        if (settingsCriterias == null) {
            settingsCriterias = new Criteria("sensorSettings." + key)
                    .is(sensor.getSensorSettings().getValue(key));
        } else {
            settingsCriterias = new Criteria("sensorSettings." + key)
                    .is(sensor.getSensorSettings().getValue(key)).andOperator(settingsCriterias);
        }
    }
    if (settingsCriterias != null) {
        criteria.andOperator(settingsCriterias);
    }
    Query existingQuery = new Query(criteria);
    if (mongoOperation.exists(existingQuery, Sensor.class, COLLECTION_NAME)) {
        return mongoOperation.findOne(existingQuery, Sensor.class, COLLECTION_NAME);
    }
    mongoOperation.save(sensor, COLLECTION_NAME);
    return sensor;
}

From source file:com.monkeyk.sos.infrastructure.mongo.UserRepositoryMongo.java

@Override
public User findByUsername(String username) {
    LOG.debug("Call findByUsername, username = {}", username);
    Query query = new Query(new Criteria("username").is(username));
    return this.mongoTemplate().findOne(query, User.class);
}

From source file:com.ewcms.common.query.mongo.CriteriaWapper.java

/**
 * {@code criteriaChain}??{@code super.criteriaChina}
 * /*  ww  w. j  a v  a  2 s  .  c om*/
 * @param criteria
 */
public Criteria andOperator(Criteria... criteria) {
    super.andOperator(criteria);
    BasicBSONList bsonList = createCriteriaList(criteria);
    criteriaChain.add(new Criteria("$and").is(bsonList));
    return this;
}

From source file:eu.cloudwave.wp5.feedbackhandler.repositories.ApplicationRepositoryImpl.java

/**
 * {@inheritDoc}//from   w w  w  .  j  a v  a 2  s .co m
 */
@Override
public DbCostApplication findOneCostApplication(final String applicationId) {
    final Criteria criteria = new Criteria(APPLICATION_ID).is(applicationId);
    return mongoTemplate.findOne(new Query(criteria), DbCostApplicationImpl.class);
}

From source file:eu.trentorise.smartcampus.unidataservice.controller.rest.CanteenController.java

/**
 * // w  ww .  ja  v a 2  s.c  om
 * @param request
 * @param response
 * @param from start date in format yyyy-mm-dd
 * @param to end date in format yyyy-mm-dd
 * @return
 * @throws InvocationException
 */
@RequestMapping(method = RequestMethod.GET, value = "/data/getmenu/{from}/{to}")
public @ResponseBody List<Menu> getMenu(HttpServletRequest request, HttpServletResponse response,
        @PathVariable String from, @PathVariable String to) throws InvocationException {
    try {
        Criteria criteria = new Criteria("date").gte(from).lte(to);
        Query query = new Query(criteria);

        List<Menu> result = mongoTemplate.find(query, Menu.class, "menu");

        return result;
    } catch (Exception e) {
        response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
    }
    return null;
}