List of usage examples for org.springframework.data.mongodb.core.query Update Update
Update
From source file:org.ow2.play.metadata.service.MetadataServiceImpl.java
@Override @WebMethod//from w ww . java 2 s. co m public void addMetadata(Resource resource, Metadata metadata) throws MetadataException { if (logger.isLoggable(Level.INFO)) logger.info(String.format("Adding metdata %s to resource %s", metadata, resource)); if (resource == null || resource.getName() == null || resource.getUrl() == null) { throw new MetadataException("Null resource"); } if (metadata == null || metadata.getData() == null || metadata.getName() == null) { throw new MetadataException("Null metadata"); } Update update = new Update(); update.addToSet("metadata", metadata); mongoTemplate.updateFirst( query(where("resource.name").is(resource.getName()).and("resource.url").is(resource.getUrl())), update, org.ow2.play.metadata.service.document.MetaResource.class); }
From source file:com.enitalk.opentok.OpenTokListener.java
@Scheduled(fixedDelay = 10000L) public void updateFinalStatus() { try {/*from w w w. ja v a2s . com*/ 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.epam.ta.reportportal.database.dao.ProjectRepositoryCustomImpl.java
@Override public void removeUserFromProjects(String userId) { StringBuilder builder = new StringBuilder("users."); builder.append(userId);/* w ww .j a v a 2 s .c o m*/ Query query = Query.query(Criteria.where(builder.toString()).exists(true)); mongoTemplate.updateMulti(query, new Update().unset(builder.toString()), Project.class); }
From source file:com.enitalk.controllers.youtube.processor.Y2BeProcessor.java
public void run() { try {/*from w ww . ja va 2 s. c o m*/ logger.info("Running processor"); //TO-DO make it work only for 30+ minutes after the Query q = Query.query(Criteria.where("").is("")); List<HashMap> items = mongo.find(q, HashMap.class, "events"); ArrayNode its = jackson.convertValue(items, ArrayNode.class); final List<JsonNode> allEvents = its.findParents("ii"); allEvents.forEach((JsonNode el) -> { try { List<String> ids = jackson.convertValue(el.path("liveId"), List.class); Credential credential = flow.loadCredential(el.at("/teacher/dest/sendTo").toString()); YouTube youtube = new YouTube.Builder(new NetHttpTransport(), JacksonFactory.getDefaultInstance(), credential).setApplicationName("enitalk").build(); boolean refreshed = credential.refreshToken(); logger.info("Token refreshed {} id {}", refreshed); YouTube.Videos.List list = youtube.videos() .list("id,liveStreamingDetails,recordingDetails,status,statistics"); list.setId(StringUtils.join(ids, ',')); logger.info("Video param query {}", list.buildHttpRequestUrl()); byte[] response = IOUtils.toByteArray(list.executeUnparsed().getContent()); JsonNode r = jackson.readTree(response); logger.info("Yt response {}", r); Update u = new Update().set("records", jackson.convertValue(r, HashMap.class)); long finishedItems = r.path("items").findParents("id").stream().filter((JsonNode yt) -> { return yt.at("/status/uploadStatus").asText().equals("processed"); }).count(); logger.info("Finished items {}", finishedItems); if (finishedItems == ids.size()) { logger.info("All items finished, shall sent links to user"); } else { u.set("nextCheck", new DateTime(DateTimeZone.UTC).plusMinutes(15).toDate()); } mongo.updateFirst(Query.query(Criteria.where("ii").is(el.path("ii").asText())), u, "events"); } catch (Exception e) { logger.error(ExceptionUtils.getFullStackTrace(e)); } }); } catch (Exception e) { logger.error(ExceptionUtils.getFullStackTrace(e)); } }
From source file:com.trenako.repositories.mongo.CollectionsRepositoryImpl.java
@Override public void addItem(Account owner, CollectionItem item) { Collection collection = new Collection(owner); // force the item to calculate its id if (StringUtils.isBlank(item.getItemId())) { item.setItemId(item.getItemId()); }//from w ww . j av a2 s. c om Update upd = new Update().set("owner", collection.getOwner()).set("slug", collection.getSlug()) .set("visibility", collection.getVisibility()).set("lastModified", now()).push("items", item) .inc("categories." + CategoriesCount.getKey(item.getCategory()), 1); mongo.upsert(query(where("owner").is(owner.getSlug())), upd, Collection.class); }
From source file:org.starfishrespect.myconsumption.server.business.repositories.repositoriesimpl.SensorRepositoryImpl.java
@Override public boolean incrementUsageCount(String id) { Update update = new Update().inc("usageCount", 1); mongoOperation.updateFirst(idQuery(id), update, Sensor.class, COLLECTION_NAME); return true;//from w w w .ja va2s.c o m }
From source file:com.trenako.repositories.mongo.WishListsRepositoryImpl.java
@Override public void addItem(WishList wishList, WishListItem newItem) { Update upd = new Update().set("lastModified", now()).set("owner", wishList.getOwner()) .set("name", wishList.getName()).set("visibility", wishList.getVisibility()).inc("numberOfItems", 1) .push("items", newItem); mongoTemplate.upsert(query(where("slug").is(wishList.getSlug())), upd, WishList.class); }
From source file:com.trenako.repositories.mongo.CommentsRepositoryImpl.java
@Override public void remove(RollingStock rs, Comment comment) { RollingStockComments rsc = new RollingStockComments(rs); Comment c = new Comment(comment.getCommentId()); Update upd = new Update().inc("numberOfComments", -1).pull("items", c); Query where = query(where("slug").is(rsc.getSlug())); mongo.updateFirst(where, upd, RollingStockComments.class); }
From source file:com.epam.ta.reportportal.database.search.UpdateStatisticsQueryBuilder.java
/** * Aware issue statistic field is specified, or to to_investigate field * instead./*from w w w.j a v a 2 s .c o m*/ * * @param issueType * - <b>null</b> is cannot be specified * @param issueTypeCounter * - count of issues for specified issue counter field (or not * specified) * @return Update - MongoDB update object */ /* RESET methods in old statistics */ public static Update fromIssueTypeAware(final StatisticSubType subType, int issueTypeCounter) { Update issueTypeAware = new Update(); issueTypeAware .inc(ISSUE_COUNTER + "." + (subType != null ? valueOf(subType.getTypeRef()).awareStatisticsField() + "." + subType.getLocator() : TO_INVESTIGATE.awareStatisticsField() + "." + TO_INVESTIGATE.getLocator()), issueTypeCounter) .inc(ISSUE_COUNTER + "." + (subType != null ? valueOf(subType.getTypeRef()).awareStatisticsField() + "." + GROUP_TOTAL : TO_INVESTIGATE.awareStatisticsField() + "." + GROUP_TOTAL), issueTypeCounter); return issueTypeAware; }
From source file:app.data.local.CollectionBindingRepositoryImpl.java
@Override public void updateTags(long colId, @Nullable List<String> tags) { Query query = new Query(); query.addCriteria(Criteria.where("collectionId").is(colId)); Update update = new Update(); update.set("tags", tags); mMongoTemplate.upsert(query, update, CollectionBinding.class); }