Example usage for org.springframework.data.mongodb.core.query Update Update

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

Introduction

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

Prototype

Update

Source Link

Usage

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