List of usage examples for org.springframework.data.mongodb.core.query Query fields
public Field fields()
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); }