List of usage examples for org.springframework.data.mongodb.core.query Update Update
Update
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; }