List of usage examples for org.springframework.data.mongodb.core.query Query limit
int limit
To view the source code for org.springframework.data.mongodb.core.query Query limit.
Click Source Link
From source file:com.epam.ta.reportportal.database.dao.TestItemRepositoryCustomImpl.java
@Override public List<TestItem> findTestItemWithInvestigated(String launchId) { Criteria internalIssues = new Criteria().andOperator(where(LAUNCH_REFERENCE).is(launchId), where(ISSUE_TYPE).ne(TestItemIssueType.TO_INVESTIGATE.name()), where(ISSUE_DESCRIPTION).exists(true)); Criteria externalIssues = new Criteria().andOperator(where(LAUNCH_REFERENCE).is(launchId), where(ISSUE_TYPE).exists(true), where(ISSUE_TICKET).exists(true)); Query query = query(new Criteria().orOperator(internalIssues, externalIssues)); query.limit(HISTORY_LIMIT); query.fields().include("name"); query.fields().include("launchRef"); query.fields().include("issue"); query.fields().include("status"); query.fields().include(ID_REFERENCE); query.fields().include("start_time"); return mongoTemplate.find(query, TestItem.class); }
From source file:com.epam.ta.reportportal.database.dao.TestItemRepositoryCustomImpl.java
@Override public List<TestItem> loadItemsHistory(List<TestItem> items, List<String> launchesIds, List<String> parentIds) { if (items == null || launchesIds == null) { return new ArrayList<>(); }// w w w . j av a2 s .c o m Query query = query(getHistoryLaunchPathCriteria(launchesIds, items.get(0))) .addCriteria(getItemsHistoryCriteria(items)); if (parentIds != null) { query.addCriteria(where("parent").in(parentIds)); } query.limit(HISTORY_LIMIT); query.fields().include("name"); query.fields().include("start_time"); query.fields().include("end_time"); /* For UI: links level detector */ query.fields().include("has_childs"); query.fields().include("launchRef"); query.fields().include("issue"); query.fields().include("status"); query.fields().include("tags"); query.fields().include("itemDescription"); query.fields().include("statistics"); query.fields().include("type"); query.fields().include(ID_REFERENCE); return mongoTemplate.find(query, TestItem.class); }
From source file:com.mobileman.kuravis.core.services.event.impl.EventServiceImpl.java
@Override public TreatmentEvent findLastTreatmentEvent(String userId, String diseaseId, String treatmentId) { Query query = Query.query(Criteria.where(TreatmentEvent.USER_ID).is(userId).and(TreatmentEvent.DISEASE_ID) .is(diseaseId).and(TreatmentEvent.TREATMENT_ID).is(treatmentId)); query.with(new Sort(Sort.Direction.DESC, TreatmentEvent.CREATED_ON)); query.limit(1); return getMongoTemplate().findOne(query, TreatmentEvent.class); }
From source file:com.ewcms.common.query.mongo.EasyQueryImpl.java
@Override public ResultPage<T> findPage(Pagination page) { Query query = Query.query(criteria); long count = operations.count(query, entityClass); setSort(query, page.getSort());/*from ww w .j av a2s. c o m*/ query.skip(page.getOffset()); query.limit(page.getSize()); List<T> list = operations.find(query, entityClass); return new ResultPageImpl<T>(page, count, list); }
From source file:com.seajas.search.profiler.service.repository.RepositoryService.java
/** * Process a paged list of all resources within the repository. * //from www .j a v a 2s.c o m * @param collection * @param sourceId * @param taxonomyMatch * @param url * @param startDate * @param endDate * @param parameters * @param rangeStart * @param rangeEnd * @param processor * @return boolean */ public boolean processResources(final String collection, final Integer sourceId, final String taxonomyMatch, final String url, final Date startDate, final Date endDate, final Map<String, String> parameters, final Integer rangeStart, final Integer rangeEnd, final RepositoryProcessor processor) { Query query = createQuery(true, collection, sourceId, taxonomyMatch, startDate, endDate, url, parameters); query.fields().include("_id"); query.fields().include("currentState"); query.fields().include("element.hostname"); // Determine the total number of document this affects final AtomicLong currentResult = new AtomicLong(0L); // Then skip to it and get going query.skip(rangeStart); if (rangeEnd != null) query.limit(rangeEnd - rangeStart); if (logger.isInfoEnabled()) logger.info(String.format("Processing ranges %d to %s of (unknown) results through the given processor", rangeStart, rangeEnd != null ? rangeEnd.toString() : "end")); mongoTemplate.executeQuery(query, defaultCollection, new DocumentCallbackHandler() { @Override public void processDocument(final DBObject dbObject) throws MongoException, DataAccessException { CompositeState currentState = CompositeState.valueOf((String) dbObject.get("currentState")); if (!EnumSet.of(CompositeState.Content, CompositeState.CompletedDocument, CompositeState.InitialDocument).contains(currentState)) { if (logger.isDebugEnabled()) { ObjectId id = (ObjectId) dbObject.get("_id"); logger.debug("Skipping over element with ID '" + id + "' and current state '" + currentState + "'"); } return; } ObjectId id = (ObjectId) dbObject.get("_id"); String hostname = (String) ((BasicDBObject) dbObject.get("element")).get("hostname"); if (logger.isInfoEnabled()) logger.info("Processing re-indexing entry " + currentResult.getAndIncrement() + " / (unknown) with ID '" + id + "' and hostname '" + hostname + "'"); processor.process(id, hostname); } }); return true; }
From source file:se.inera.axel.shs.broker.messagestore.internal.MongoMessageLogService.java
@Override public int removeArchivedMessages(long messageAgeInSeconds) { int limit = 1000; int totalRemoved = 0; //timestamp limit Date dateTime = new Date(System.currentTimeMillis() - messageAgeInSeconds * 1000); Query query = new Query(); query.addCriteria(Criteria.where("stateTimeStamp").lt(dateTime).and("archived").is(true)); //query.with(new Sort(Sort.Direction.DESC, "stateTimeStamp")); Boolean moreEntries = false;//w ww .j a v a 2 s . co m do { query.limit(limit); List<ShsMessageEntry> entries = mongoTemplate.find(query, ShsMessageEntry.class); log.debug("found {} entries", entries.size()); if (entries.size() > 0 && entries.size() < limit) { //all entries found totalRemoved += iterateAndRemove(entries); moreEntries = false; } else if (entries.size() > 0 && entries.size() == limit) { totalRemoved += iterateAndRemove(entries); moreEntries = true; } else { moreEntries = false; } } while (moreEntries); log.debug("Removed {} archived messages modified before {}", totalRemoved, dateTime); return totalRemoved; }
From source file:se.inera.axel.shs.broker.messagestore.internal.MongoMessageLogService.java
@Override public int removeArchivedMessageEntries(long messageAgeInSeconds) { int limit = 1000; int totalRemoved = 0; Date dateTime = new Date(System.currentTimeMillis() - messageAgeInSeconds * 1000); Query query = new Query(); query.addCriteria(Criteria.where("stateTimeStamp").lt(dateTime).and("archived").is(true)); //query.with(new Sort(Sort.Direction.DESC, "stateTimeStamp")); Boolean moreEntries = false;//w w w .j a va 2 s . co m do { query.limit(limit); List<ShsMessageEntry> entries = mongoTemplate.find(query, ShsMessageEntry.class); log.debug("found {} entries", entries.size()); if (entries.size() > 0 && entries.size() < limit) { totalRemoved += iterateAndRemoveEntries(entries); moreEntries = false; } else if (entries.size() > 0 && entries.size() == limit) { totalRemoved += iterateAndRemoveEntries(entries); moreEntries = true; } else { moreEntries = false; } } while (moreEntries); log.debug("Removed {} archived messageEntries modified before {}", totalRemoved, dateTime); return totalRemoved; }
From source file:se.inera.axel.shs.broker.messagestore.internal.MongoMessageLogService.java
@Override public Iterable<ShsMessageEntry> listMessages(String shsTo, Filter filter) { Criteria criteria = Criteria.where("label.to.value").is(shsTo).and("label.transferType") .is(TransferType.ASYNCH).and("state").is(MessageState.RECEIVED).and("archived").in(null, false); if (filter.getProductIds() != null && !filter.getProductIds().isEmpty()) { criteria = criteria.and("label.product.value").in(filter.getProductIds()); }//from w ww. jav a 2 s. co m if (filter.getNoAck() == true) { criteria = criteria.and("acknowledged").in(false, null); } if (filter.getStatus() != null) { criteria = criteria.and("label.status").is(filter.getStatus()); } if (filter.getEndRecipient() != null) { criteria = criteria.and("label.endRecipient.value").is(filter.getEndRecipient()); } if (filter.getOriginator() != null) { criteria = criteria.and("label.originatorOrFrom.value").is(filter.getOriginator()); } if (filter.getCorrId() != null) { criteria = criteria.and("label.corrId").is(filter.getCorrId()); } if (filter.getContentId() != null) { criteria = criteria.and("label.content.contentId").is(filter.getContentId()); } if (filter.getMetaName() != null) { criteria = criteria.and("label.meta.name").is(filter.getMetaName()); } if (filter.getMetaValue() != null) { criteria = criteria.and("label.meta.value").is(filter.getMetaValue()); } if (filter.getSince() != null) { criteria = criteria.and("stateTimeStamp").gte(filter.getSince()); } Query query = Query.query(criteria); Sort sort = createAttributeSort(filter); Sort arrivalOrderSort = createArrivalOrderSort(filter); if (sort != null) sort.and(arrivalOrderSort); else sort = arrivalOrderSort; query.with(sort); if (filter.getMaxHits() != null && filter.getMaxHits() > 0) query = query.limit(filter.getMaxHits()); else query = query.limit(200); return mongoTemplate.find(query, ShsMessageEntry.class); }
From source file:com.seajas.search.profiler.service.repository.RepositoryService.java
/** * Retrieve a paged list of all resources within the repository. * * @param collection//w ww. j a v a 2 s . c o m * @param sourceId * @param taxonomyMatch * @param startDate * @param endDate * @param pagerStart * @param pagerResults * @param parameters * @return RepositoryResult */ public RepositoryResult findResources(final String collection, final Integer sourceId, final String taxonomyMatch, final Date startDate, final Date endDate, final Integer pagerStart, final Integer pagerResults, final Map<String, String> parameters) { Query query = createQuery(false, collection, sourceId, taxonomyMatch, startDate, endDate, null, parameters); query.with(new Sort(Sort.Direction.DESC, "originalContent.dateSubmitted")); if (logger.isInfoEnabled()) logger.info("About to count the number of results - which can potentially take a while - query = " + query.toString()); // First perform a count Long totalResults = mongoTemplate.count(query, defaultCollection); if (logger.isInfoEnabled()) logger.info("Counted " + totalResults + " result(s) to be retrieved from the storage back-end"); // Then add paging parameters to the query query.skip(pagerStart); query.limit(pagerResults); // And build up the result List<RepositoryResource> results = new ArrayList<RepositoryResource>(pagerResults); List<CompositeEntry> entries = mongoTemplate.find(query, CompositeEntry.class, defaultCollection); for (CompositeEntry entry : entries) results.add(new RepositoryResource(entry.getOriginalContent().getUri().toString(), entry.getSource().getCollection(), entry.getSource().getId(), entry.getOriginalContent().getHostname(), entry.getOriginalContent().getDateSubmitted(), entry.getId().toString())); return new RepositoryResult(pagerStart, pagerResults, totalResults, results); }
From source file:se.inera.axel.shs.broker.messagestore.internal.MongoMessageLogService.java
@Override public int removeSuccessfullyTransferredMessages() { int limit = 1000; int skip = 0; int page = 0; int totalRemoved = 0; Query query = new Query(); query.addCriteria(Criteria.where("stateTimeStamp").lt(new Date(System.currentTimeMillis() - 2000)) .orOperator(Criteria.where("state").is("SENT"), Criteria.where("state").is("RECEIVED").and("label.transferType").is("SYNCH"), Criteria.where("state").is("FETCHED"))); // query.with(new Sort(Sort.Direction.DESC, "stateTimeStamp")); Boolean moreEntries = false;/*from w w w . j a v a2s .com*/ do { query.limit(limit); query.skip(skip); List<ShsMessageEntry> entries = mongoTemplate.find(query, ShsMessageEntry.class); log.debug("found {} entries", entries.size()); if (entries.size() > 0 && entries.size() < limit) { //all entries found totalRemoved += iterateAndRemove(entries); moreEntries = false; } else if (entries.size() > 0 && entries.size() == limit) { totalRemoved += iterateAndRemove(entries); page++; skip = page * limit; moreEntries = true; } else { moreEntries = false; } } while (moreEntries && totalRemoved > 0); log.debug("Removed {} transferred messages", totalRemoved); return totalRemoved; }