List of usage examples for com.mongodb.client MongoCollection updateOne
UpdateResult updateOne(Bson filter, List<? extends Bson> update);
From source file:net.springfieldusa.storage.mongodb.comp.MongoStorageComponent.java
License:Open Source License
@Override public <T extends EntityObject> long patch(String collection, T data) { MongoCollection<Document> mongoCollection = getCollection(collection); List<Bson> updates = new ArrayList<>(); if (data.getAttributes() != null) { for (Entry<String, Object> entry : data.getAttributes().entrySet()) updates.add(set(entry.getKey(), entry.getValue())); }/*from w w w. j a v a 2 s. c o m*/ if (data.getMeta() != null) { for (Entry<String, Object> entry : data.getMeta().entrySet()) updates.add(set(META + "." + entry.getKey(), entry.getValue())); } if (data.getRelationships() != null) { for (Relationship relationship : data.getRelationships()) { if (relationship.isMany()) { Collection<Document> dbReferences = new ArrayList<>(); updates.add(set(RELATIONSHIPS + "." + relationship.getType(), dbReferences)); relationship.getObjectReferences().forEach((reference) -> { if (reference.getId() != null) dbReferences.add(createReference(reference)); }); } else { if (relationship.getObjectReference().getId() != null) updates.add(set(RELATIONSHIPS + "." + relationship.getType(), createReference(relationship.getObjectReference()))); } } } UpdateResult result = mongoCollection.updateOne(eq(ID, data.getId()), combine(updates)); return result.getMatchedCount(); }
From source file:org.kaaproject.kaa.server.datamigration.UpdateUuidsMigration.java
License:Apache License
/** * Change encoding of uuids from Latin1 to Base64 in relational and NoSQL databases. * *//* w w w. j ava 2 s . c o m*/ public void transform() throws IOException, SQLException { QueryRunner run = new QueryRunner(); ResultSetHandler<List<Configuration>> rsHandler = new BeanListHandler<>(Configuration.class); List<Configuration> configs = run.query(connection, "SELECT * FROM configuration", rsHandler); for (Configuration config : configs) { JsonNode json = new ObjectMapper().readTree(config.getConfigurationBody()); JsonNode jsonEncoded = encodeUuids(json); byte[] encodedConfigurationBody = jsonEncoded.toString().getBytes(); int updates = run.update(connection, "UPDATE configuration SET configuration_body=? WHERE id=?", encodedConfigurationBody, config.getId()); if (updates != 1) { System.err.println("Error: failed to update configuration: " + config); } } if (nosql.equals(Options.DEFAULT_NO_SQL)) { MongoDatabase database = client.getDatabase(dbName); MongoCollection<Document> userConfiguration = database.getCollection("user_configuration"); FindIterable<Document> documents = userConfiguration.find(); for (Document d : documents) { String body = (String) d.get("body"); JsonNode json = new ObjectMapper().readTree(body); JsonNode jsonEncoded = encodeUuids(json); userConfiguration.updateOne(Filters.eq("_id", d.get("_id")), Filters.eq("$set", Filters.eq("body", jsonEncoded))); } } else { Session session = cluster.connect(dbName); BatchStatement batchStatement = new BatchStatement(); String tableName = "user_conf"; ResultSet results = session.execute(select().from(tableName)); for (Row row : results) { String userId = row.getString("user_id"); String appToken = row.getString("app_token"); int schemaVersion = row.getInt("schema_version"); String body = row.getString("body"); String bodyEncoded = encodeUuids(new ObjectMapper().readTree(body)).toString(); batchStatement.add(update(tableName).with(set("body", bodyEncoded)).where(eq("user_id", userId)) .and(eq("app_token", appToken)).and(eq("schema_version", schemaVersion))); } session.execute(batchStatement); session.close(); cluster.close(); } }
From source file:org.piotr.apollo.service.LessonService.java
public void updateLessonTest(Finished finished) { MongoCollection collection = mongoDB.getCollection(lessonCollection); Double gradeToUpdate = 0.0;// w ww .ja va 2 s . c o m BasicDBObject toUpdate = new BasicDBObject(); BasicDBObject oldObject = new BasicDBObject(); oldObject.append("_id", new ObjectId(finished.getLessonId())); Document document = new Document(); document.append("_id", new ObjectId(finished.getLessonId())); FindIterable iterable = collection.find(document); MongoCursor<Document> cursor = iterable.iterator(); while (cursor.hasNext()) { Document temp = cursor.next(); Integer testCounter = temp.getInteger("testCounter"); Double percentageCorrect = temp.getDouble("percentageCorrect"); toUpdate.append("testCounter", testCounter + 1); if (percentageCorrect != 0.0) { toUpdate.append("percentageCorrect", (percentageCorrect + finished.getPercentage()) / 2); gradeToUpdate = getProperGrade((percentageCorrect + finished.getPercentage()) / 2); } else { toUpdate.append("percentageCorrect", finished.getPercentage()); gradeToUpdate = getProperGrade(finished.getPercentage()); } toUpdate.append("grade", gradeToUpdate); collection.updateOne(oldObject, new BasicDBObject("$set", toUpdate)); } }
From source file:org.siphon.jsmongo.MongoExecutor.java
License:Open Source License
public Object updateRow(String table, ScriptObjectMirror row1, ScriptObjectMirror row2) throws SqlExecutorException, ScriptException { MongoCollection<Document> collection = database.getCollection(table); Document document = jsObjectToDocument(row1); Document document2 = jsObjectToDocument(row2); UpdateResult result = collection.updateOne(document, document2); return bsonObjectToJsObject(result.getUpsertedId()); }
From source file:org.trade.core.persistence.local.mongo.MongoPersistence.java
License:Apache License
@Override public void storeBinaryData(byte[] data, String collectionName, String identifier) throws Exception { MongoClient client = new MongoClient(new MongoClientURI(this.mongoUrl)); MongoDatabase db = client.getDatabase(this.dbName); MongoCollection<Document> collection = db.getCollection(collectionName); Document doc = collection.find(Filters.eq(IDENTIFIER_FIELD, identifier)).limit(1).first(); if (data == null) { // We assume that if the value is set to null, we should delete also the corresponding database entry if (doc != null) { collection.deleteOne(Filters.eq(IDENTIFIER_FIELD, identifier)); }// ww w . j av a 2 s. c o m } else { // Check if the document already exists and update it if (doc != null) { collection.updateOne(Filters.eq(IDENTIFIER_FIELD, identifier), Updates.combine(Updates.set(DATA_FIELD, data), Updates.currentDate("lastModified"))); } else { Document document = new Document(IDENTIFIER_FIELD, identifier).append(DATA_FIELD, data) .append("lastModified", new Date()); collection.insertOne(document); } } client.close(); }
From source file:tour.PojoQuickTour.java
License:Apache License
/** * Run this main method to see the output of this quick example. * * @param args takes an optional single argument for the connection string *//*from ww w. j a v a 2 s . c o m*/ public static void main(final String[] args) { MongoClient mongoClient; if (args.length == 0) { // connect to the local database server mongoClient = MongoClients.create(); } else { mongoClient = MongoClients.create(args[0]); } // create codec registry for POJOs CodecRegistry pojoCodecRegistry = fromRegistries(MongoClientSettings.getDefaultCodecRegistry(), fromProviders(PojoCodecProvider.builder().automatic(true).build())); // get handle to "mydb" database MongoDatabase database = mongoClient.getDatabase("mydb").withCodecRegistry(pojoCodecRegistry); // get a handle to the "people" collection MongoCollection<Person> collection = database.getCollection("people", Person.class); // drop all the data in it collection.drop(); // make a document and insert it Person ada = new Person("Ada Byron", 20, new Address("St James Square", "London", "W1")); System.out.println("Original Person Model: " + ada); collection.insertOne(ada); // Person will now have an ObjectId System.out.println("Mutated Person Model: " + ada); // get it (since it's the only one in there since we dropped the rest earlier on) Person somebody = collection.find().first(); System.out.println(somebody); // now, lets add some more people so we can explore queries and cursors List<Person> people = asList( new Person("Charles Babbage", 45, new Address("5 Devonshire Street", "London", "W11")), new Person("Alan Turing", 28, new Address("Bletchley Hall", "Bletchley Park", "MK12")), new Person("Timothy Berners-Lee", 61, new Address("Colehill", "Wimborne", null))); collection.insertMany(people); System.out.println("total # of people " + collection.countDocuments()); System.out.println(""); // lets get all the documents in the collection and print them out Block<Person> printBlock = new Block<Person>() { @Override public void apply(final Person person) { System.out.println(person); } }; collection.find().forEach(printBlock); System.out.println(""); // now use a query to get 1 document out somebody = collection.find(eq("address.city", "Wimborne")).first(); System.out.println(somebody); System.out.println(""); // now lets find every over 30 collection.find(gt("age", 30)).forEach(printBlock); System.out.println(""); // Update One collection.updateOne(eq("name", "Ada Byron"), combine(set("age", 23), set("name", "Ada Lovelace"))); System.out.println(""); // Update Many UpdateResult updateResult = collection.updateMany(not(eq("zip", null)), set("zip", null)); System.out.println(updateResult.getModifiedCount()); System.out.println(""); // Replace One updateResult = collection.replaceOne(eq("name", "Ada Lovelace"), ada); System.out.println(updateResult.getModifiedCount()); // Delete One collection.deleteOne(eq("address.city", "Wimborne")); // Delete Many DeleteResult deleteResult = collection.deleteMany(eq("address.city", "London")); System.out.println(deleteResult.getDeletedCount()); // Clean up database.drop(); // release resources mongoClient.close(); }
From source file:uk.ac.ebi.eva.dbmigration.mongodb.ExtractAnnotationFromVariant.java
License:Apache License
@ChangeSet(order = "006", id = "addDefaultVersionInAnnotationMetadata", author = "EVA") public void addDefaultVersion(MongoDatabase mongoDatabase) { final MongoCollection<Document> annotationMetadataCollection = mongoDatabase .getCollection(databaseParameters.getDbCollectionsAnnotationMetadataName()); logger.info("6) add default annotation version to collection {} ", annotationMetadataCollection.getNamespace()); Document allVersions = new Document(); Document setDefaultToFalse = new Document("$set", new Document(DEFAULT_VERSION_FIELD, false)); annotationMetadataCollection.updateMany(allVersions, setDefaultToFalse); String id = databaseParameters.getVepVersion() + "_" + databaseParameters.getVepCacheVersion(); Document defaultVersionDocument = new Document(ID_FIELD, id); Document setDefaultToTrue = new Document("$set", new Document(DEFAULT_VERSION_FIELD, true)); UpdateResult updateResult = annotationMetadataCollection.updateOne(defaultVersionDocument, setDefaultToTrue);//from w ww . ja v a2 s . co m Assert.state(updateResult.getModifiedCount() == 1, "Only one modification was expected"); }