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.ingini.mongodb.spring.example.update.TestUpdate.java

@Test
public void shouldAddFieldToTheLightbringer() {
    //GIVEN//from w w w . j  a  v  a 2s.c  o m
    CollectionManager.cleanAndFill(mongoTemplate.getDb(), "weapons.json", WEAPONS);

    WeaponDetails details = new WeaponDetails(
            "The one who pulls out this sword from fire will be named Lord's Chosen ...", "Azor Ahai");

    //WHEN
    mongoTemplate.findAndModify(Query.query(Criteria.where("_id").is("Lightbringer")),
            new Update().set("details", details), Weapon.class);

    //AND WHEN
    Weapon weapon = mongoTemplate.findOne(Query.query(Criteria.where("_id").is("Lightbringer")), Weapon.class);

    //THEN
    assertThat(weapon).isNotNull();
}

From source file:io.github.microcks.repository.DailyStatisticRepositoryImpl.java

@Override
public void incrementDailyStatistic(String day, String serviceName, String serviceVersion, String hourKey,
        String minuteKey) {//  w  w  w .  j  a  v  a2  s  .  c o m

    // Build a query to select specific object within collection.
    Query query = new Query(Criteria.where("day").is(day).and("serviceName").is(serviceName)
            .and("serviceVersion").is(serviceVersion));

    // Other way to build a query using statically imported methods.
    //Query queryShort = query(where("day").is(day).and("serviceName").is(serviceName).and("serviceVersion").is(serviceVersion));

    // Build update to increment the 3 fields.
    Update update = new Update().inc("dailyCount", 1).inc("hourlyCount." + hourKey, 1)
            .inc("minuteCount." + minuteKey, 1);

    // Do an upsert with find and modify.
    template.findAndModify(query, update, DailyStatistic.class);
}

From source file:app.data.local.CollectionBindingRepositoryImpl.java

@Override
public void removeFavor(long colId, String uid) {
    Query query = new Query();
    query.addCriteria(/*from   w w  w  .  j  a va  2 s .c om*/
            Criteria.where("collectionId").is(colId).and("favors").elemMatch(Criteria.where("uid").is(uid)));

    Update update = new Update();
    //update.unset("dataList.$");
    //mMongoTemplate.upsert(query, update, Favor.class);
    // http://stackoverflow.com/questions/35600557/mongodb-how-using-spring-cryteria-remove-element-from-nested-object-array
    // http://ufasoli.blogspot.fr/2012/09/mongodb-spring-data-remove-elements.html?view=sidebar
    update.pull("favors", new BasicDBObject("uid", uid));
    mMongoTemplate.updateMulti(query, update, CollectionBinding.class);
}

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

public void runEniword() {
    try {//from ww  w  .  ja  va  2 s . co  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:com.trenako.repositories.mongo.ReviewsRepositoryImpl.java

@Override
public void removeReview(RollingStock rs, Review review) {
    Map<String, Object> m = Maps.map("author", (Object) review.getAuthor());

    Update upd = new Update().pull("items", m).inc("numberOfReviews", -1).inc("totalRating",
            -1 * review.getRating());/*from  www  .jav  a2  s .co  m*/
    mongo.updateFirst(query(where("slug").is(rs.getSlug())), upd, RollingStockReviews.class);
}

From source file:com.springsource.html5expense.mongodb.services.ExpenseRepository.java

@Override
public Expense changeExpenseStatus(Long expenseId, String state) {
    Update update = new Update();
    update.set("state", State.valueOf(state));
    Expense exp = getExpense(expenseId);
    logger.debug("Get Expense " + exp.getDescription());
    mongoTemplate.updateFirst(new Query(Criteria.where("_id").is(expenseId)), update, EXPENSE_COLLECTION_NAME);
    return getExpense(expenseId);
}

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

@Override
public void persistSubscriptionRequest(String username, SubscriptionRequest sr) {
    Query query = Query.query(Criteria.where(Account.USERNAME).is(username));
    Update update = new Update().addToSet(Account.UNREAD_REQUEST, sr);
    getMongoTemplate().updateFirst(query, update, Account.class);
}

From source file:org.starfishrespect.myconsumption.server.business.repositories.repositoriesimpl.ValuesRepositoryImpl.java

@Override
public void insertOrUpdate(SensorDataset value) throws DaoException {
    Update update = new Update();
    Query existingQuery = new Query(new Criteria("timestamp").is(value.getTimestamp()));

    if (mongoOperation.exists(existingQuery, SensorDataset.class, collectionName)) {
        TreeMap<Integer, MinuteValues> minuteValues = value.getValues();
        for (Integer minuteTs : minuteValues.keySet()) {
            Query existingMinute = new Query(
                    new Criteria().andOperator(Criteria.where("timestamp").is(value.getTimestamp()),
                            Criteria.where("values." + minuteTs)));
            MinuteValues minute;/*w w  w. ja v  a 2  s. c o m*/
            if (mongoOperation.exists(existingMinute, MinuteValues.class, collectionName)) {
                minute = mongoOperation.findOne(existingMinute, MinuteValues.class, collectionName);
                minute.merge(minuteValues.get(minuteTs));
            } else {
                minute = minuteValues.get(minuteTs);
            }
            update.set("values." + minuteTs, minute);
        }
        mongoOperation.updateFirst(existingQuery, update, collectionName);
    } else {
        mongoOperation.save(value, collectionName);
    }
}

From source file:com.trenako.repositories.mongo.CommentsRepositoryImpl.java

@Override
public void createAnswer(RollingStock rs, Comment comment, Comment answer) {
    RollingStockComments rsc = new RollingStockComments(rs);
    Comment a = new Comment(answer.getAuthor(), answer.getContent(), now());

    Update upd = new Update().inc("numberOfComments", 1).push("items.$.answers", a);

    Query where = query(where("slug").is(rsc.getSlug()).and("items.commentId").is(comment.getCommentId()));

    mongo.updateFirst(where, upd, RollingStockComments.class);
}

From source file:quanlyhocvu.api.mongodb.DAO.LopHocDAO.java

public boolean addStudent(HocSinhDTO hs, String classId) {
    LopHocDTO lopHoc = getLopHocById(classId);
    List<HocSinhDTO> tempList = lopHoc.getlistHocSinh();
    tempList.add(hs);//  w  w w .j  a va2 s  .co m
    Query query = Query.query(Criteria.where("id").is(classId));
    Update update = new Update();
    update.set("listHocSinh", tempList);
    mongoOperation.findAndModify(query, update, LopHocDTO.class);
    return true;
}