Code ví dụ Java Mongo – Update documents, update row
(Xem lại: Hướng dẫn MongoDB)
Cài đặt MongoDB JDBC Driver
Nếu bạn sử dụng maven thì thêm dependency sau:
<dependency> <groupId>org.mongodb</groupId> <artifactId>mongo-java-driver</artifactId> <version>3.8.0</version> </dependency>
Hoặc download file jar: mongo-java-driver-3.8.0.jar
Code ví dụ
Trước tiên, mình sẽ insert trước 1 số document sau vào collection player của database stackjava và sẽ tiến hành search, select trên dữ liệu này.
use stackjava
db.player.insert([
{'_id':'1', 'name':'neymar', 'country':'brazil', 'age':25},
{'_id':'2', 'name':'hazard', 'country':'belgium', 'age':25},
{'_id':'3', 'name':'mbappe', 'country':'france', 'age':18},
{'_id':'4', 'name':'modric', 'country':'croatia', 'age':30},
{'_id':'5', 'name':'ronaldo', 'country':'portugal', 'age':33},
{'_id':'6', 'name':'messi', 'country':'argentina', 'age':31},
{'_id':'7', 'name':'icardi', 'country':'argentina', 'age':25},
{'_id':'8', 'name':'griezmann', 'country':'france', 'age':28}
])
Ví dụ 1: Thực hiện update một document
Update document có name = “neymar” và sửa age thành 27:
public class UpdateOne {
public static void main(String[] args) {
MongoClient mongoClient = new MongoClient("localhost", 27017);
MongoDatabase database = mongoClient.getDatabase("stackjava");
MongoCollection<Document> collection = database.getCollection("player");
collection.updateOne(Filters.eq("name", "neymar"), Updates.set("age", 27));
System.out.println("Update success!");
FindIterable<Document> iterDoc = collection.find();
Iterator<Document> it = iterDoc.iterator();
System.out.println("--------------- All Player ------------------");
while (it.hasNext()) {
System.out.println(it.next());
}
mongoClient.close();
}
}
Với updateOne nếu tìm thấy nhiều hơn 1 document có name = “neymar” thì nó cũng chỉ update document đầu tiên tìm thấy mà thôi.
Kết quả:
Update success!
--------------- All Player ------------------
Document{{_id=1, name=neymar, country=brazil, age=27}}
Document{{_id=2, name=hazard, country=belgium, age=25.0}}
Document{{_id=3, name=mbappe, country=france, age=18.0}}
Document{{_id=4, name=modric, country=croatia, age=30.0}}
Document{{_id=5, name=ronaldo, country=portugal, age=33.0}}
Document{{_id=6, name=messi, country=argentina, age=31.0}}
Document{{_id=7, name=icardi, country=argentina, age=25.0}}
Document{{_id=8, name=griezmann, country=france, age=28.0}}
Ví dụ 2: Thực hiện update nhiều bản ghi
Update tất cả các bản ghi có country = “argentina” và sửa age = 20
public class UpdateMany {
public static void main(String[] args) {
MongoClient mongoClient = new MongoClient("localhost", 27017);
MongoDatabase database = mongoClient.getDatabase("stackjava");
MongoCollection<Document> collection = database.getCollection("player");
collection.updateMany(Filters.eq("country", "argentina"), Updates.set("age", 20));
System.out.println("Update success!");
FindIterable<Document> iterDoc = collection.find();
Iterator<Document> it = iterDoc.iterator();
System.out.println("--------------- All Player ------------------");
while (it.hasNext()) {
System.out.println(it.next());
}
mongoClient.close();
}
}
Kết quả:
--------------- All Player ------------------
Document{{_id=1, name=neymar, country=brazil, age=27}}
Document{{_id=2, name=hazard, country=belgium, age=25.0}}
Document{{_id=3, name=mbappe, country=france, age=18.0}}
Document{{_id=4, name=modric, country=croatia, age=30.0}}
Document{{_id=5, name=ronaldo, country=portugal, age=33.0}}
Document{{_id=6, name=messi, country=argentina, age=20}}
Document{{_id=7, name=icardi, country=argentina, age=20}}
Document{{_id=8, name=griezmann, country=france, age=28.0}}
Xác nhận lại bằng cmd:
Okay, Done!
Download code ví dụ trên tại đây.
(Xem lại: Hướng dẫn MongoDB, Java + MongoDB)

