Thao tác với MongoDB trong các ứng dụng Java

MongoDB là một NoSQL database, cho phép chúng ta có thể lưu trữ những kiểu dữ liệu phức tạp, không có cấu trúc nhất định. Trong bài viết này, mình sẽ hướng dẫn các bạn các bước cơ bản để làm việc với MongoDB trong các ứng dụng Java các bạn nhé!

Đầu tiên, mình sẽ tạo mới một Maven project để làm ví dụ:

Thao tác với MongoDB trong các ứng dụng Java

Tương tự như các hệ thống database khác, để làm việc với Java, chúng ta cần khai báo để sử dụng Driver của MongoDB trong ứng dụng của mình.

OK, bắt đầu thôi các bạn.



Để kết nối tới MongoDB, chúng ta sẽ sử dụng đối tượng MongoClient từ thư viện Driver của nó với khai báo như sau:

Trong đó đối tượng MongoClientURI là một trong những đối tượng sẽ quản lý thông tin về MongoDB bao gồm IP address và port mà MongoDB đang chạy. Còn đối tượng MongoClient sẽ là đối tượng đảm nhiệm vai trò kết nối tới MongoDB đó.

Trong trường hợp, các bạn đang sử dụng MongoDB server với authentication mode, thì các bạn cần khai báo username và password đang được gán cho database mà các bạn đang định sẽ sử dụng, các bạn nhé.

Sau đó thì kết nối tới MongoDB với đoạn code sau:

Mình sẽ sử dụng MongoDB server không chạy với authentication mode trong bài viết này, các bạn nhé!

Mặc định, MongoDB sẽ chạy trên port 27017 và nếu các bạn đang cài đặt MongoDB trên máy local thì chúng ta không cần phải khai báo đối tượng MongoClientURI các bạn nhé! Các bạn chỉ cần khai báo đơn giản như sau:

Mình đang sử dụng MongoDB trên máy mình nên mình chỉ cần khai báo như trên mà thôi!

Lúc này, nếu chạy ứng dụng:

các bạn sẽ thấy kết quả như sau:

Thao tác với MongoDB trong các ứng dụng Java

Nhìn vào đoạn log, các bạn có thể thấy là ứng dụng của chúng ta đã kết nối được với MongoDB rồi đó các bạn!



Sau khi đã kết nối tới MongoDB xong, giờ thì các bạn có thể thao tác với nó.

Đầu tiên, các bạn có thể lấy được danh sách các database đang có trong MongoDB hiện tại của mình sử dụng phương thức listDatabaseNames().

Ví dụ:

Kết quả:

Thao tác với MongoDB trong các ứng dụng Java


Chúng ta có thể chọn database để thao tác sử dụng phương thức getDatabase() của đối tượng MongoClient.

Ví dụ, mình đang có một database tên là mongodb trong MongoDB, thì code của mình sẽ như sau:

Giống như khi thao tác sử dụng command line với MongoDB, nếu database mà chúng ta chọn để thao tác không tồn tại thì database này sẽ tự động tạo nha các bạn.

Đối tượng MongoDatabase sẽ là đối tượng nắm giữ mọi thông tin về các Collection có trong database mà chúng ta đang sử dụng. Do đó, từ đối tượng MongoDatabase này, các bạn có thể lấy được tên của tất cả các Collection sử dụng phương thức listCollectionNames().

Database “mongodb” của mình đang có những Collection sau:

Thao tác với MongoDB trong các ứng dụng Java

thì kết quả sẽ là:

Thao tác với MongoDB trong các ứng dụng Java



Để thao tác với một Collection nào đó, các bạn có thể sử dụng phương thức getCollection() của đối tượng MongoDatabase để lấy đối tượng MongoCollection cho Collection đó.

Ví dụ của mình như sau:

Nếu muốn insert một Document vào Collection thì các bạn có thể sử dụng các phương thức insertOne() để insert 1 Document hoặc insertMany() để insert nhiều Document cùng một lúc.

Một Document là một chuỗi JSON và chúng ta sẽ sử dụng đối tượng Document của MongoDB Driver API để build nó. Ví dụ, giờ mình muốn build một Document về thông tin sinh viên gồm tên và tuổi thì mình sẽ tạo đối tượng Document như sau:

rồi viết code để insert một Document mới:

Kết quả:

Thao tác với MongoDB trong các ứng dụng Java


Tất nhiên, các bạn cũng có thể kiểm tra kết quả từ code bằng cách sử dụng phương thức find() của đối tượng MongoCollection.

Phương thức find() này có tham số là một đối tượng Document, đây chính là tiêu chí để tìm kiếm tất cả các Document trong Collection hiện tại có nội dung tương tự đó các bạn.

Trong ví dụ trên, mình tìm kiếm các Student Document theo 2 tiêu chí là name và age. Các bạn có thể mở rộng kết quả tìm kiếm bằng một trong 2 tiêu chí này cũng được.

Kết quả:

Thao tác với MongoDB trong các ứng dụng Java


Các bạn cũng có thể update một hoặc nhiều Document cùng một lúc cũng được.

Chúng ta sẽ sử dụng các phương thức updateOne() hoặc updateMany() của đối tượng MongoCollection để làm điều này.

Có nhiều phương thức overload của 2 phương thức trên với các tham số khác nhau. Nhưng cơ bản thì có 2 tham số chính, đó là đối tượng Document để tìm kiếm các Document cần update, đối tượng Document thứ 2 chứa nội dung cần update.

Trong ví dụ của mình, giả sử mình cần update tuổi của các sinh viên tên Khanh lên 32 thì mình sẽ viết code như sau:

Như các bạn thấy, đối tượng Document chứa nội dung cần update cần được build với từ khoá “$set” và value của nó là thông tin sinh viên cần update.

Kết quả:

Thao tác với MongoDB trong các ứng dụng Java


Và các bạn cũng có thể xoá một hoặc nhiều Document cùng một lúc sử dụng các phương thức deleteOne() và deleteMany().

Ví dụ:

Kết quả:

Thao tác với MongoDB trong các ứng dụng Java

5/5 - (2 bình chọn)

2 thoughts on “Thao tác với MongoDB trong các ứng dụng Java

Add Comment