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

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

Introduction

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

Prototype

public Criteria orOperator(Criteria... criteria) 

Source Link

Document

Creates an 'or' criteria using the $or operator for all of the provided criteria

Note that mongodb doesn't support an $or operator to be wrapped in a $not operator.

Usage

From source file:com.github.rutledgepaulv.qbuilders.visitors.MongoVisitor.java

@Override
protected Criteria visit(OrNode node) {
    Criteria criteria = new Criteria();
    List<Criteria> children = node.getChildren().stream().map(this::visitAny).collect(Collectors.toList());
    return criteria.orOperator(children.toArray(new Criteria[children.size()]));
}

From source file:ro.isdc.auth.social.connect.MongoConnectionService.java

/**
 * Get all the connections for an user./*ww w.  j  av a 2 s.  co m*/
 * 
 * @see org.springframework.social.connect.mongo.ConnectionService#getConnections(java.lang.String,
 *      org.springframework.util.MultiValueMap)
 */
@Override
public List<Connection<?>> getConnections(String userId, MultiValueMap<String, String> providerUsers) {
    // userId? and providerId = ? and providerUserId in (?, ?, ...) order by
    // providerId, rank

    if (providerUsers == null || providerUsers.isEmpty()) {
        throw new IllegalArgumentException("Unable to execute find: no providerUsers provided");
    }

    List<Criteria> lc = new ArrayList<Criteria>();
    for (Entry<String, List<String>> entry : providerUsers.entrySet()) {
        String providerId = entry.getKey();

        lc.add(where("providerId").is(providerId).and("providerUserId").in(entry.getValue()));
    }

    Criteria criteria = where("userId").is(userId);
    criteria.orOperator(lc.toArray(new Criteria[lc.size()]));

    Query q = new Query(criteria);
    q.sort().on("providerId", Order.ASCENDING).on("rank", Order.ASCENDING);

    return runQuery(q);
}

From source file:com.faujnet.mongo.repository.UserSocialConnectionService.java

/**
 * Get all the connections for an user.//  w  w w. j  av a2  s .  co m
 * 
 * @see org.springframework.social.connect.mongo.ConnectionService#getConnections(java.lang.String, org.springframework.util.MultiValueMap)
 */
@SuppressWarnings("deprecation")
@Override
public List<Connection<?>> getConnections(String userId, MultiValueMap<String, String> providerUsers) {
    // userId? and providerId = ? and providerUserId in (?, ?, ...) order by providerId, rank

    if (providerUsers == null || providerUsers.isEmpty()) {
        throw new IllegalArgumentException("Unable to execute find: no providerUsers provided");
    }

    List<Criteria> lc = new ArrayList<Criteria>();
    for (Entry<String, List<String>> entry : providerUsers.entrySet()) {
        String providerId = entry.getKey();

        lc.add(where("providerId").is(providerId).and("providerUserId").in(entry.getValue()));
    }

    Criteria criteria = where("userId").is(userId);
    criteria.orOperator(lc.toArray(new Criteria[lc.size()]));

    Query q = new Query(criteria);
    q.sort().on("providerId", Order.ASCENDING).on("rank", Order.ASCENDING);

    return runQuery(q);
}

From source file:com.comcast.video.dawg.controller.house.filter.GroupCondition.java

/**
 * {@inheritDoc}// w ww .java 2 s  . c o m
 */
@Override
public Criteria toCriteria(boolean negate) {
    /** If we are negating the whole criteria then we just negate the negation... */
    boolean notToUse = negate ? !not : not;
    Criteria crit = new Criteria();

    /** When you negate a grouping, you flip the operator and then negate all the elements */
    GroupOperator gop = groupOp;
    if (notToUse) {
        /** Flip operator */
        gop = groupOp.equals(GroupOperator.and) ? GroupOperator.or : GroupOperator.and;
    }

    Criteria[] all = new Criteria[conditions.size()];
    for (int i = 0; i < conditions.size(); i++) {
        all[i] = conditions.get(i).toCriteria(notToUse);
    }

    return gop.equals(GroupOperator.and) ? crit.andOperator(all) : crit.orOperator(all);
}

From source file:br.com.ezequieljuliano.argos.persistence.LoggerDAO.java

private List<Logger> findByTermsAndCriteria(List<UserTerm> terms, Criteria criteria, long limit) {
    List<Logger> loggers = new ArrayList<Logger>();
    if (!terms.isEmpty()) {
        String searchString = "";
        for (UserTerm userTerm : terms) {
            if (userTerm.getTerm() == Term.fullText) {
                searchString = searchString + userTerm.getValue() + " ";
            } else {
                switch (userTerm.getFilterMatchMode()) {
                case contains:
                    if (userTerm.getLogicalOperator() == LogicalOperator.orOperator) {
                        criteria.orOperator(
                                Criteria.where(userTerm.getTerm().getField()).regex(userTerm.getValue(), "i"));
                    } else {
                        criteria.and(userTerm.getTerm().getField()).regex(userTerm.getValue(), "i");
                    }/*from  www .j a va2 s  .c om*/
                    break;
                case startsWith:
                    if (userTerm.getLogicalOperator() == LogicalOperator.orOperator) {
                        criteria.orOperator(Criteria.where(userTerm.getTerm().getField())
                                .regex('^' + userTerm.getValue(), "i"));
                    } else {
                        criteria.and(userTerm.getTerm().getField()).regex('^' + userTerm.getValue(), "i");
                    }
                    break;
                case equal:
                    if (userTerm.getLogicalOperator() == LogicalOperator.orOperator) {
                        if (userTerm.getTerm().isObjId()) {
                            criteria.orOperator(Criteria.where(userTerm.getTerm().getField())
                                    .is(new ObjectId(userTerm.getValue())));
                        } else {
                            criteria.orOperator(
                                    Criteria.where(userTerm.getTerm().getField()).is(userTerm.getValue()));
                        }
                    } else {
                        if (userTerm.getTerm().isObjId()) {
                            criteria.and(userTerm.getTerm().getField()).is(new ObjectId(userTerm.getValue()));
                        } else {
                            criteria.and(userTerm.getTerm().getField()).is(userTerm.getValue());
                        }
                    }
                    break;
                case endsWith:
                    if (userTerm.getLogicalOperator() == LogicalOperator.orOperator) {
                        criteria.orOperator(Criteria.where(userTerm.getTerm().getField())
                                .regex(userTerm.getValue() + '$', "i"));
                    } else {
                        criteria.and(userTerm.getTerm().getField()).regex(userTerm.getValue() + '$', "i");
                    }
                    break;
                }
            }
        }
        if (Strings.isEmpty(searchString)) {
            loggers = getMongoOperations().find(Query.query(criteria).limit((int) limit), Logger.class);
        } else {
            loggers = findByFullText(Logger.COLLECTION_NAME, searchString, criteria, limit);
        }
    }
    return loggers;
}

From source file:com.epam.ta.reportportal.database.dao.TestItemRepositoryCustomImpl.java

/**
 * Create {@link Criteria} object for items history selecting Define name
 * type conditions./*  w  ww . j a  va  2 s . c om*/
 *
 * @param testItems
 * @return
 */
private Criteria getItemsHistoryCriteria(List<TestItem> testItems) {
    Criteria criteria = new Criteria();
    Criteria[] itemCriteries = new Criteria[testItems.size()];

    for (int i = 0; i < testItems.size(); i++) {
        TestItem testItem = testItems.get(i);
        Criteria one = where("name").is(testItem.getName()).and("type").is(testItem.getType().toString());
        if (null != testItem.getItemDescription())
            one.and("itemDescription").is(testItem.getItemDescription());
        if (null != testItem.getTags())
            one.and("tags").is(testItem.getTags());
        itemCriteries[i] = one;
    }

    criteria.orOperator(itemCriteries);
    return criteria;
}

From source file:org.opentestsystem.shared.progman.persistence.TenantRepositoryImpl.java

@Override
public List<Tenant> findByNameAndType(final Map<TenantType, String> params) {
    List<Tenant> tenants = null;
    final List<Criteria> criteriaList = Lists.newArrayList();
    for (final Entry<TenantType, String> entry : params.entrySet()) {
        if (StringUtils.isNotBlank(entry.getValue())) {
            criteriaList.add(/*from   w  w w  .  j a  v  a  2s . c o m*/
                    Criteria.where("type").is(entry.getKey().getTypeName()).and("name").is(entry.getValue()));
        }
    }
    if (!CollectionUtils.isEmpty(criteriaList)) {
        final Query query = new Query();
        final Criteria criteria = new Criteria();
        query.addCriteria(Criteria.where("active").is(true));
        query.addCriteria(criteria.orOperator(criteriaList.toArray(new Criteria[] {})));
        tenants = this.mongoOperations.find(query, Tenant.class);
    }
    return tenants;
}