List of usage examples for com.mongodb.client MongoCollection replaceOne
UpdateResult replaceOne(Bson filter, TDocument replacement);
From source file:com.gs.obevo.mongodb.impl.MongoDbChangeAuditDao.java
License:Apache License
@Override public void updateOrInsertChange(Change change, DeployExecution deployExecution) { MongoCollection<Document> auditCollection = getAuditCollection(change); MutableList<Document> docs = iterableToCollection(auditCollection.find(getChangeFilter(change))); if (docs.size() > 1) { throw new IllegalStateException("Not expecting multiple changes for this key [" + change.getObjectName() + "." + change.getChangeName() + "], but found " + docs); } else if (docs.isEmpty()) { insertNewChange(change, deployExecution); } else {/*from www .j a va 2s . c o m*/ Document previousDoc = docs.get(0); Date timeInserted = previousDoc.getDate(timeInsertedColumn); auditCollection.replaceOne(getChangeFilter(change), createDocFromChange(change, deployExecution, timeInserted)); } }
From source file:com.gs.obevo.mongodb.impl.MongoDbDeployExecutionDao.java
License:Apache License
@Override public void update(DeployExecution deployExecution) { MongoDatabase database = mongoClient .getDatabase(env.getPhysicalSchema(deployExecution.getSchema()).getPhysicalName()); MongoCollection<Document> auditCollection = database.getCollection(deployExecutionTableName); auditCollection.replaceOne(getChangeFilter(deployExecution), getDocumentFromDeployExecution(deployExecution, true)); }
From source file:com.u2apple.rt.db.dao.DeviceLogDao.java
public void updateDeviceLog(String productId, String[] vids, Model model) { MongoCollection<Document> deviceLog = getDeviceLog(); Document filter = new Document("product-id", productId); Document doc = getDeviceLog().find(filter).first(); if (doc != null && model != null) { List<Document> models = doc.get("models", List.class); Document m = convertModel(vids, model); if (models != null) { models.add(m);// w w w. java2 s . c o m } else { models = new ArrayList<>(); models.add(m); } doc.append("models", models); deviceLog.replaceOne(filter, doc); } else { Device device = new Device(); device.setProductId(productId); doc = toDocument(device); List<Document> models = new ArrayList<>(); models.add(convertModel(vids, model)); doc.append("models", models); deviceLog.insertOne(doc); } }
From source file:com.u2apple.tool.dao.DeviceLogDao.java
public void updateDeviceLog(String productId, String[] vids, Modal model) { MongoCollection<Document> deviceLog = getDeviceLog(); Document filter = new Document("product-id", productId); Document doc = getDeviceLog().find(filter).first(); if (doc != null && model != null) { List<Document> models = doc.get("models", List.class); Document m = convertModel(vids, model); if (models != null) { models.add(m);//from ww w. j a v a 2 s .c o m } else { models = new ArrayList<>(); models.add(m); } doc.append("models", models); deviceLog.replaceOne(filter, doc); } else { Device device = new Device(); device.setProductId(productId); doc = toDocument(device); List<Document> models = new ArrayList<>(); models.add(convertModel(vids, model)); doc.append("models", models); deviceLog.insertOne(doc); } }
From source file:data.Activity.java
License:Open Source License
public void updateInDb(DBManagerMongo manager) throws Exception { MongoCollection<Document> coll = manager.getDb().getCollection("activity"); Document toUpdate = new Document("hash", getLocalHash()).append("project_phase_id", getProjectPhaseId()) .append("project_id", getProjectId()).append("user_login_name", getUserLoginName()) .append("description", getDescription()) .append("start_time", Date.from(getStart().toLocalDateTime().atZone(ZoneId.of("UTC")).toInstant())) .append("end_time", Date.from(getStop().toLocalDateTime().atZone(ZoneId.of("UTC")).toInstant())) .append("comment", getComments()).append("id", getId()); UpdateResult result = coll.replaceOne(and(eq("id", getId()), eq("hash", getRemoteHash())), toUpdate); if (result.getModifiedCount() != 1) throw new Exception("Record was modified or not found"); setRemoteHash(getLocalHash());/*from w w w . j a v a2s .com*/ }
From source file:data.Project.java
License:Open Source License
public void updateInDb(DBManagerMongo manager) throws Exception { MongoCollection<Document> coll = manager.getDb().getCollection("project"); Document toUpdate = new Document("hash", getLocalHash()).append("name", getName()) .append("description", getDescription()).append("id", getId()).append("hash", getLocalHash()); UpdateResult result = coll.replaceOne(and(eq("id", getId()), eq("hash", getRemoteHash())), toUpdate); if (result.getModifiedCount() != 1) throw new Exception("Record was modyfied or not found"); setRemoteHash(getLocalHash());/*from w ww.j a va 2s . c o m*/ }
From source file:data.ProjectMember.java
License:Open Source License
public void updateInDb(DBManagerMongo manager) throws Exception { MongoCollection<Document> coll = manager.getDb().getCollection("project_member"); Document toUpdate = new Document("hash", getLocalHash()).append("user_login_name", getUserLoginName()) .append("project_id", getProjectId()).append("role", getRole().name()); UpdateResult result = coll .replaceOne(and(and(eq("user_login_name", getUserLoginName()), eq("hash", getRemoteHash())), eq("project_id", getProjectId())), toUpdate); if (result.getModifiedCount() != 1) throw new Exception("Record was modyfied or not found"); setRemoteHash(getLocalHash());//from w w w . j a v a 2 s . co m }
From source file:data.ProjectPhase.java
License:Open Source License
public void updateInDb(DBManagerMongo manager) throws Exception { MongoCollection<Document> coll = manager.getDb().getCollection("project_phase"); Document toUpdate = new Document("hash", getLocalHash()).append("name", getName()) .append("project_id", getProjectId()).append("id", getId()); UpdateResult result = coll.replaceOne(and(eq("id", getId()), eq("hash", getRemoteHash())), toUpdate); if (result.getModifiedCount() != 1) throw new Exception("Record was modyfied or not found"); setRemoteHash(getLocalHash());//from w w w. j av a 2 s .c o m }
From source file:data.User.java
License:Open Source License
public void updateInDb(DBManagerMongo manager) throws Exception { MongoCollection<Document> coll = manager.getDb().getCollection("user"); Document toUpdate = new Document("hash", getLocalHash()).append("login_name", getLoginName()) .append("first_name", getFirstName()).append("last_name", getLastName()).append("email", getEmail()) .append("salt", getSalt()).append("password", getPassword()).append("role", getRole().name()); UpdateResult result = coll.replaceOne(and(eq("login_name", getLoginName()), eq("hash", getRemoteHash())), toUpdate);// w w w. j av a2s. c om if (result.getModifiedCount() != 1) throw new Exception("Record was modyfied or not found"); setRemoteHash(getLocalHash()); }
From source file:documentation.ChangeStreamSamples.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 w ww.j ava2 s . co m*/ public static void main(final String[] args) { MongoClient mongoClient; if (args.length == 0) { // connect to the local database server mongoClient = MongoClients.create("mongodb://localhost:27017,localhost:27018,localhost:27019"); } else { mongoClient = MongoClients.create(args[0]); } // Select the MongoDB database. MongoDatabase database = mongoClient.getDatabase("testChangeStreams"); database.drop(); sleep(); // Select the collection to query. MongoCollection<Document> collection = database.getCollection("documents"); /* * Example 1 * Create a simple change stream against an existing collection. */ System.out.println("1. Initial document from the Change Stream:"); // Create the change stream cursor. MongoChangeStreamCursor<ChangeStreamDocument<Document>> cursor = collection.watch().cursor(); // Insert a test document into the collection. collection.insertOne(Document.parse("{username: 'alice123', name: 'Alice'}")); ChangeStreamDocument<Document> next = cursor.next(); System.out.println(next); cursor.close(); sleep(); /* * Example 2 * Create a change stream with 'lookup' option enabled. * The test document will be returned with a full version of the updated document. */ System.out.println("2. Document from the Change Stream, with lookup enabled:"); // Create the change stream cursor. cursor = collection.watch().fullDocument(FullDocument.UPDATE_LOOKUP).cursor(); // Update the test document. collection.updateOne(Document.parse("{username: 'alice123'}"), Document.parse("{$set : { email: 'alice@example.com'}}")); // Block until the next result is returned next = cursor.next(); System.out.println(next); cursor.close(); sleep(); /* * Example 3 * Create a change stream with 'lookup' option using a $match and ($redact or $project) stage. */ System.out.println( "3. Document from the Change Stream, with lookup enabled, matching `update` operations only: "); // Insert some dummy data. collection.insertMany(asList(Document.parse("{updateMe: 1}"), Document.parse("{replaceMe: 1}"))); // Create $match pipeline stage. List<Bson> pipeline = singletonList( Aggregates.match(Filters.or(Document.parse("{'fullDocument.username': 'alice123'}"), Filters.in("operationType", asList("update", "replace", "delete"))))); // Create the change stream cursor with $match. cursor = collection.watch(pipeline).fullDocument(FullDocument.UPDATE_LOOKUP).cursor(); // Forward to the end of the change stream next = cursor.tryNext(); // Update the test document. collection.updateOne(Filters.eq("updateMe", 1), Updates.set("updated", true)); next = cursor.next(); System.out.println(format("Update operationType: %s %n %s", next.getUpdateDescription(), next)); // Replace the test document. collection.replaceOne(Filters.eq("replaceMe", 1), Document.parse("{replaced: true}")); next = cursor.next(); System.out.println(format("Replace operationType: %s", next)); // Delete the test document. collection.deleteOne(Filters.eq("username", "alice123")); next = cursor.next(); System.out.println(format("Delete operationType: %s", next)); cursor.close(); sleep(); /** * Example 4 * Resume a change stream using a resume token. */ System.out.println("4. Document from the Change Stream including a resume token:"); // Get the resume token from the last document we saw in the previous change stream cursor. BsonDocument resumeToken = cursor.getResumeToken(); System.out.println(resumeToken); // Pass the resume token to the resume after function to continue the change stream cursor. cursor = collection.watch().resumeAfter(resumeToken).cursor(); // Insert a test document. collection.insertOne(Document.parse("{test: 'd'}")); // Block until the next result is returned next = cursor.next(); System.out.println(next); cursor.close(); }