BAEL-5359: Updating Multiple Fields in a MongoDB Document (#11861)
* BAEL-5359: Updating Multiple Fields in a MongoDB Document * BAEL-5359: Add test class file * BAEL-5359: Rename UpdateMultipleFieldsUnitTest.java to UpdateMultipleFieldsLiveTest.java
This commit is contained in:
parent
0ddf9b6e38
commit
eae57f5496
|
@ -0,0 +1,44 @@
|
|||
package com.baeldung.mongo.update;
|
||||
|
||||
import org.bson.Document;
|
||||
|
||||
import com.mongodb.BasicDBObject;
|
||||
import com.mongodb.MongoClient;
|
||||
import com.mongodb.client.MongoCollection;
|
||||
import com.mongodb.client.MongoDatabase;
|
||||
import com.mongodb.client.result.UpdateResult;
|
||||
|
||||
public class MultipleFieldsExample {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
//
|
||||
// Connect to cluster (default is localhost:27017)
|
||||
//
|
||||
|
||||
MongoClient mongoClient = new MongoClient("localhost", 27017);
|
||||
MongoDatabase database = mongoClient.getDatabase("baeldung");
|
||||
MongoCollection<Document> collection = database.getCollection("employee");
|
||||
|
||||
//
|
||||
// Filter on the basis of employee_id
|
||||
//
|
||||
|
||||
BasicDBObject searchQuery = new BasicDBObject("employee_id", 794875);
|
||||
|
||||
//
|
||||
// Update the fields in Document
|
||||
//
|
||||
|
||||
BasicDBObject updateFields = new BasicDBObject();
|
||||
updateFields.append("department_id", 3);
|
||||
updateFields.append("job", "Sales Manager");
|
||||
BasicDBObject setQuery = new BasicDBObject();
|
||||
setQuery.append("$set", updateFields);
|
||||
UpdateResult updateResult = collection.updateMany(searchQuery, setQuery);
|
||||
|
||||
System.out.println("updateResult:- " + updateResult);
|
||||
System.out.println("updateResult:- " + updateResult.getModifiedCount());
|
||||
|
||||
}
|
||||
}
|
|
@ -0,0 +1,36 @@
|
|||
package com.baeldung.mongo.update;
|
||||
|
||||
import org.bson.Document;
|
||||
|
||||
import com.mongodb.MongoClient;
|
||||
import com.mongodb.client.MongoCollection;
|
||||
import com.mongodb.client.MongoDatabase;
|
||||
import com.mongodb.client.model.Filters;
|
||||
import com.mongodb.client.model.Updates;
|
||||
import com.mongodb.client.result.UpdateResult;
|
||||
|
||||
public class UpdateMultipleFields {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
//
|
||||
// Connect to cluster
|
||||
//
|
||||
|
||||
MongoClient mongoClient = new MongoClient("localhost", 27007);
|
||||
MongoDatabase database = mongoClient.getDatabase("baeldung");
|
||||
MongoCollection<Document> collection = database.getCollection("employee");
|
||||
|
||||
//
|
||||
// Update query
|
||||
//
|
||||
|
||||
UpdateResult updateResult = collection.updateMany(Filters.eq("employee_id", 794875),
|
||||
Updates.combine(Updates.set("department_id", 4), Updates.set("job", "Sales Manager")));
|
||||
|
||||
System.out.println("updateResult:- " + updateResult);
|
||||
System.out.println("updateResult:- " + updateResult.getModifiedCount());
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,80 @@
|
|||
package com.baeldung.update;
|
||||
|
||||
import static org.junit.Assert.assertFalse;
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
import static org.junit.Assert.assertNull;
|
||||
import static org.junit.Assert.assertSame;
|
||||
|
||||
import org.bson.Document;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
||||
import com.mongodb.BasicDBObject;
|
||||
import com.mongodb.MongoClient;
|
||||
import com.mongodb.client.MongoCollection;
|
||||
import com.mongodb.client.MongoDatabase;
|
||||
import com.mongodb.client.model.Filters;
|
||||
import com.mongodb.client.model.Updates;
|
||||
import com.mongodb.client.result.UpdateResult;
|
||||
|
||||
public class UpdateMultipleFieldsLiveTest {
|
||||
|
||||
private MongoClient mongoClient;
|
||||
private MongoDatabase db;
|
||||
private MongoCollection<Document> collection;
|
||||
|
||||
@Before
|
||||
public void setup() {
|
||||
if (mongoClient == null) {
|
||||
mongoClient = new MongoClient("localhost", 27017);
|
||||
db = mongoClient.getDatabase("baeldung");
|
||||
collection = db.getCollection("employee");
|
||||
|
||||
collection.insertOne(Document.parse(
|
||||
"{'employee_id':794875,'employee_name': 'David smith','job': 'Sales Representative','department_id': 2,'salary': 20000,'hire_date': NumberLong(\"1643969311817\")}"));
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void updateMultipleFieldsUsingDBObject() {
|
||||
|
||||
BasicDBObject searchQuery = new BasicDBObject("employee_id", 794875);
|
||||
BasicDBObject updateFields = new BasicDBObject();
|
||||
updateFields.append("department_id", 4);
|
||||
updateFields.append("job", "Sales Manager");
|
||||
BasicDBObject setQuery = new BasicDBObject();
|
||||
setQuery.append("$set", updateFields);
|
||||
|
||||
collection.updateMany(searchQuery, setQuery);
|
||||
|
||||
Document nameDoc = collection.find(Filters.eq("employee_id", 794875)).first();
|
||||
assertNotNull(nameDoc);
|
||||
assertFalse(nameDoc.isEmpty());
|
||||
|
||||
String job = nameDoc.get("job", String.class);
|
||||
assertNotNull(job);
|
||||
|
||||
Integer department_id = nameDoc.get("department_id", Integer.class);
|
||||
assertNotNull(department_id);
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
public void updateMultipleFieldsUsingDocument() {
|
||||
|
||||
collection.updateMany(Filters.eq("employee_id", 794875),
|
||||
Updates.combine(Updates.set("department_id", 4), Updates.set("job", "Sales Manager")));
|
||||
|
||||
Document nameDoc = collection.find(Filters.eq("employee_id", 794875)).first();
|
||||
assertNotNull(nameDoc);
|
||||
assertFalse(nameDoc.isEmpty());
|
||||
|
||||
String job = nameDoc.get("job", String.class);
|
||||
assertNotNull(job);
|
||||
|
||||
Integer department_id = nameDoc.get("department_id", Integer.class);
|
||||
assertNotNull(department_id);
|
||||
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue