db.collection.update( <query>, <update>, <options> )
BasicDBObject newDocument = new BasicDBObject(); newDocument.put("empId", 10006); newDocument.put("empName", "Dinesh Rajput"); newDocument.put("salary", 70000); collection.update(new BasicDBObject().append("empId", 10006), newDocument);
BasicDBObject newDocument = new BasicDBObject().append("$inc", new BasicDBObject().append("salary", 20000)); collection.update(new BasicDBObject().append("empId", 10006), newDocument);
BasicDBObject newDocument = new BasicDBObject().append("$set", new BasicDBObject().append("salary", 90000)); collection.update(new BasicDBObject().append("empId", 10006), newDocument);
//find empAge= 26 , update all matched documents , "salary" value to 60000 BasicDBObject updateQuery = new BasicDBObject().append("$set", new BasicDBObject().append("salary", "60000")); //both methods are doing the same thing. //collection.updateMulti(new BasicDBObject().append("empAge", "26"), updateQuery); collection.update(new BasicDBObject().append("empAge", "26"), updateQuery, false, true);
package com.dineshonjava.mongo.test; import java.net.UnknownHostException; import com.mongodb.BasicDBObject; import com.mongodb.DB; import com.mongodb.DBCollection; import com.mongodb.DBCursor; import com.mongodb.Mongo; import com.mongodb.MongoException; /** * @author Dinesh Rajput * */ public class UpdateDocumentDemo { public static void printAllDocuments(DBCollection collection){ DBCursor cursor = collection.find(); while (cursor.hasNext()) { System.out.println(cursor.next()); } } public static void removeAllDocuments(DBCollection collection){ collection.remove(new BasicDBObject()); } public static void insertDummyDocuments(DBCollection collection){ BasicDBObject document = new BasicDBObject(); document.put("empId", "10006"); document.put("empName", "Dinesh"); document.put("salary", 70000); BasicDBObject document2 = new BasicDBObject(); document2.put("empId", "10007"); document2.put("empName", "Sweety"); document2.put("salary", 70000); BasicDBObject document3 = new BasicDBObject(); document3.put("empId", "10008"); document3.put("empName", "Dinesh"); document3.put("salary", 60000); collection.insert(document); collection.insert(document2); collection.insert(document3); } public static void main(String[] args) { try { Mongo mongo = new Mongo("localhost", 27017); DB db = mongo.getDB("dineshonjavaDB"); // get a single collection DBCollection collection = db.getCollection("employee"); System.out.println("Testing 1..."); insertDummyDocuments(collection); //find empId = 10006, and update it with new document BasicDBObject newDocument = new BasicDBObject(); newDocument.put("empId", "10006"); newDocument.put("empName", "Dinesh Rajput"); newDocument.put("salary", 80000); collection.update(new BasicDBObject().append("empId", "10006"), newDocument); printAllDocuments(collection); removeAllDocuments(collection); System.out.println("Testing 2..."); insertDummyDocuments(collection); //find empId = 10006 and increase its "salary" value by 90000 BasicDBObject newDocument2 = new BasicDBObject().append("$inc", new BasicDBObject().append("salary", 20000)); collection.update(new BasicDBObject().append("empId", "10006"), newDocument2); printAllDocuments(collection); removeAllDocuments(collection); System.out.println("Testing 3..."); insertDummyDocuments(collection); //find empId = 10006 and update salary to from 70000 to 90000 BasicDBObject newDocument3 = new BasicDBObject().append("$set", new BasicDBObject().append("salary", 90000)); collection.update(new BasicDBObject().append("empId", "10006"), newDocument3); printAllDocuments(collection); removeAllDocuments(collection); System.out.println("Testing 4..."); insertDummyDocuments(collection); //find empName = Dinesh , update all matched documents , salary value to 80000 BasicDBObject updateQuery = new BasicDBObject().append("$set", new BasicDBObject().append("salary", 80000)); //both method are same //collection.updateMulti(new BasicDBObject().append("empName", "Dinesh"), updateQuery); collection.update(new BasicDBObject().append("empName", "Dinesh"), updateQuery, false, true); printAllDocuments(collection); removeAllDocuments(collection); System.out.println("Done"); } catch (UnknownHostException e) { e.printStackTrace(); } catch (MongoException e) { e.printStackTrace(); } } }
Labels: mongodb