List of usage examples for org.springframework.data.mongodb.core.query Criteria orOperator
public Criteria orOperator(Criteria... criteria)
Note that mongodb doesn't support an $or operator to be wrapped in a $not operator.
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; }