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

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

Introduction

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

Prototype

public Field fields() 

Source Link

Usage

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

@Override
public BinaryData findUserPhoto(String login) {
    BinaryData photo = null;//from w  w  w.ja va2 s  . co  m
    Query q = query(where(User.LOGIN).is(login));
    q.fields().include(User.PHOTO_ID);
    User user = mongoOperations.findOne(q, User.class);
    if (user != null && user.getPhotoId() != null)
        photo = dataStorage.fetchData(user.getPhotoId());
    if (null == photo) {
        // Get default photo avatar (batman)
        photo = dataStorage.findByFilename(photoFilename(Constants.NONAME_USER.toString())).get(0);
    }
    return photo;
}

From source file:com.enitalk.opentok.OpenTokListener.java

@Scheduled(fixedDelay = 10000L)
public void updateFinalStatus() {
    try {/*from   www  . j a  va 2s .  c o  m*/
        Criteria cc3 = Criteria.where("status").is(2);
        Criteria cc1 = Criteria.where("video").exists(false);
        Query q = Query.query(Criteria.where("endDate").lt(new DateTime().toDate()).andOperator(cc3, cc1));
        q.fields().exclude("_id").include("opentok").include("ii");

        List<HashMap> eligibleEvents = mongo.find(q, HashMap.class, "events");
        if (!eligibleEvents.isEmpty()) {
            ArrayNode evs = jackson.convertValue(eligibleEvents, ArrayNode.class);
            Iterator<JsonNode> evIt = evs.elements();
            while (evIt.hasNext()) {
                JsonNode ev = evIt.next();
                HashMultimap<String, String> mmap = HashMultimap.create();

                List<JsonNode> alls = ev.path("opentok").findParents("id");
                alls.forEach((JsonNode op) -> {
                    mmap.put(op.path("id").asText(), op.path("status").asText());
                });

                logger.info("Opentok multimap {}", mmap);
                long uploadedArchives = mmap.keySet().stream().filter((String id) -> {
                    return mmap.get(id).contains("uploaded");
                }).count();
                if (uploadedArchives == mmap.keySet().size()) {
                    logger.info("All archives uploaded, process further");
                    mongo.updateFirst(Query.query(Criteria.where("ii").is(ev.path("ii").asText())),
                            new Update().set("video", 0), "events");

                } else {
                    logger.info("Only {} of {} archives uploaded", uploadedArchives, mmap);
                }
            }
        }

    } catch (Exception e) {
        logger.error(ExceptionUtils.getFullStackTrace(e));
    }
}

From source file:com.enitalk.controllers.OpentokSessionController.java

@RequestMapping(method = RequestMethod.GET, value = "/session/student/{id}", produces = "text/html")
@ResponseBody/* w w  w. jav  a  2  s. c o m*/
public byte[] sessionStudent(@PathVariable String id, HttpServletResponse res) throws IOException {

    try {
        byte[] baseUrl = sessionTeacher(id, res, true);
        String url = new String(baseUrl);
        if (!StringUtils.startsWith(url, "events")) {
            return baseUrl;
        }

        Query q = Query.query(Criteria.where("ii").is(id).andOperator(Criteria.where("status").is(2)));
        q.fields().exclude("_id").include("student").include("ii");
        HashMap ev = mongo.findOne(q, HashMap.class, "events");
        ObjectNode evJson = jackson.convertValue(ev, ObjectNode.class);

        //            url += "?dest=" + evJson.at("/student/dest/sendTo").asLong() + "&i=" + evJson.path("ii").asText();
        url += "?dest=" + evJson.at("/student/email").asText() + "&i=" + evJson.path("ii").asText();
        String signed = signer.signUrl(url, new DateTime().plusMinutes(80));
        res.sendRedirect(signed);

    } catch (Exception e) {
        logger.error(ExceptionUtils.getFullStackTrace(e));
        return "Oops.Something went wrong. Contact us at ceo@enitalk.com".getBytes();
    }

    return null;
}

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

@Override
public UserFilter findOneByName(String userName, String name, String projectName) {
    Query query = ShareableRepositoryUtils.createOwnedEntityQuery(userName).addCriteria(where(NAME).is(name))
            .addCriteria(where(UserFilter.PROJECT_NAME).is(projectName));
    query.fields().include(ID);
    return mongoTemplate.findOne(query, UserFilter.class);
}

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

@Override
public List<Log> findByTestItemRef(String itemRef, int limit, boolean isLoadBinaryData) {
    if (itemRef == null || limit <= 0) {
        return new ArrayList<>();
    }//from  w w w .  j a  v  a2  s . co m
    Query query = query(where(ITEM_REFERENCE).is(itemRef)).with(SORT_DESC_LOG_TIME);
    if (!isLoadBinaryData) {
        query.fields().exclude(BINARY_CONTENT);
    }
    long count = mongoTemplate.count(query, Log.class);
    long max = Math.max(0, count - limit);
    if (max > 0) {
        query.skip((int) max);
    }
    return mongoTemplate.find(query, Log.class);
}

From source file:com.enitalk.controllers.bots.EniWordController.java

public void runEniword() {
    try {//from www.j  a  v  a2s. c o  m

        mongo.updateMulti(Query.query(Criteria.where("eniword.nextPing").exists(false)), new Update()
                .set("eniword.nextPing", new DateTime().minusSeconds(10).toDate()).set("eniword.points", 300),
                "leads");

        Criteria d = Criteria.where("eniword.nextPing").lte(new Date());
        Criteria cal = Criteria.where("calendar").exists(true);
        Criteria unsubscribed = Criteria.where("eniword.disabled").exists(false);

        Query q = Query.query(Criteria.where("eniword.points").gt(0).andOperator(d, cal, unsubscribed));
        q.fields().exclude("_id").include("dest").include("eniword").include("calendar");

        List<HashMap> acolates = mongo.find(q, HashMap.class, "leads");
        ArrayNode leads = jackson.convertValue(acolates, ArrayNode.class);
        Iterator<JsonNode> els = leads.iterator();
        while (els.hasNext()) {
            JsonNode el = els.next();
            String tz = el.at("/calendar/timeZone").asText();
            DateTime now = new DateTime(DateTimeZone.forID(tz));

            if (now.hourOfDay().get() < 9 || now.getHourOfDay() > 20) {
                logger.info("Too late to bother {}", el);
                mongo.updateFirst(Query.query(Criteria.where("dest.sendTo").is(el.at("/dest/sendTo").asLong())),
                        new Update().set("eniword.nextPing", new DateTime().plusHours(1).toDate()), "leads");
                return;
            }

            mongo.updateFirst(Query.query(Criteria.where("dest.sendTo").is(el.at("/dest/sendTo").asLong())),
                    new Update().set("eniword.nextPing", new DateTime().plusSeconds(60 * 40).toDate()),
                    "leads");
            rabbit.send("eniwords", MessageBuilder.withBody(jackson.writeValueAsBytes(el)).build());
        }

    } catch (Exception e) {
        logger.error(ExceptionUtils.getFullStackTrace(e));
    }
}

From source file:org.maodian.flyingcat.im.repository.AccountRepositoryImpl.java

@Override
public Collection<SimpleUser> getSubscribers(String uid) {
    String kState = Account.CONTACTS + "." + SimpleUser.SUB_STATE;
    Query query = Query.query(Criteria.where(Account.USERNAME).is(uid).orOperator(
            Criteria.where(kState).is(SubState.FROM.name()), Criteria.where(kState).is(SubState.BOTH.name())));
    query.fields().include(Account.CONTACTS + ".$").exclude("_id");
    Account account = getMongoTemplate().findOne(query, Account.class);
    return account.getContactList();
}

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

@SuppressWarnings("unchecked")
@Override//from w ww.j av a2s  .  c o m
public List<T> findSharedEntities(String owner, String projectName, List<String> fields, Sort sort) {
    if (owner == null || projectName == null || fields == null || sort == null) {
        return new ArrayList<>();
    }
    Query query = ShareableRepositoryUtils.createSharedEntityQuery(owner, projectName).with(sort);
    if (Preconditions.NOT_EMPTY_COLLECTION.test(fields)) {
        for (String field : fields) {
            query.fields().include(field);
        }
    }
    Class<T> entityType = getEntityInformation().getJavaType();
    return getMongoOperations().find(query, entityType);
}

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

@Override
public List<Launch> findIdsByFilter(Filter filter, int limit) {
    Query query = QueryBuilder.newBuilder().with(filter).with(limit).build();
    query.fields().include(ID_REFERENCE);
    return mongoTemplate.find(query, Launch.class);
}

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

@Override
public List<Launch> findIdsByFilter(Filter filter, Sort sort, int quantity) {
    Query query = QueryBuilder.newBuilder().with(filter).with(sort).with(quantity).build();
    query.fields().include(ID_REFERENCE);
    query.fields().include(NUMBER);/*from  w w w . j a  v  a 2s.  co  m*/
    query.fields().include(START_TIME);
    query.fields().include(STATUS);
    return mongoTemplate.find(query, Launch.class);
}