Example usage for org.springframework.data.mongodb.core.query Query limit

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

Introduction

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

Prototype

int limit

To view the source code for org.springframework.data.mongodb.core.query Query limit.

Click Source Link

Usage

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;
}