Files
spring-boot-rest/persistence-modules/java-mongodb/src/test/java/com/baeldung/update/UpdateMultipleFieldsLiveTest.java
timis1 57209b45d2 JAVA-18264 Update article "A Guide to MongoDB with Java" (#13466)
* JAVA-18264 Update article "A Guide to MongoDB with Java"

* JAVA-18264 Update with suggestion

* JAVA-18264 Additional updates

* JAVA-18264 Format pom.xml

---------

Co-authored-by: timis1 <noreplay@yahoo.com>
2023-02-27 16:08:14 +05:30

80 lines
2.5 KiB
Java

package com.baeldung.update;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import org.bson.Document;
import org.junit.Before;
import org.junit.Test;
import com.mongodb.BasicDBObject;
import com.mongodb.client.MongoClient;
import com.mongodb.client.MongoClients;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.model.Filters;
import com.mongodb.client.model.Updates;
public class UpdateMultipleFieldsLiveTest {
private MongoClient mongoClient;
private MongoDatabase db;
private MongoCollection<Document> collection;
@Before
public void setup() {
if (mongoClient == null) {
mongoClient = MongoClients.create("mongodb://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);
}
}