Trong bài viết này, chúng tôi trình bày cách làm việc với MongoDB trong Java. Có một hướng dẫn Java ngắn gọn trên ZetCode
MongoDB là cơ sở dữ liệu định hướng tài liệu đa nền tảng NoSQL. Đây là một trong những cơ sở dữ liệu phổ biến nhất hiện có. MongoDB được phát triển bởi MongoDB Inc. và được xuất bản dưới dạng phần mềm mã nguồn mở và miễn phí
Một bản ghi trong MongoDB là một tài liệu, là một cấu trúc dữ liệu bao gồm các cặp trường và giá trị. Các tài liệu MongoDB tương tự như các đối tượng JSON. Giá trị của các trường có thể bao gồm các tài liệu, mảng và mảng tài liệu khác. MongoDB lưu trữ tài liệu trong bộ sưu tập. Bộ sưu tập tương tự như bảng trong cơ sở dữ liệu quan hệ và tài liệu tương tự như hàng
MongoDB đại diện cho các tài liệu
org.mongodb mongo-java-driver x.y.z7 ở định dạng được mã hóa nhị phân có tên là
org.mongodb mongo-java-driver x.y.z8 đằng sau hậu trường.
org.mongodb mongo-java-driver x.y.z8 mở rộng mô hình
org.mongodb mongo-java-driver x.y.z7 để cung cấp các loại dữ liệu bổ sung, các trường được sắp xếp và hiệu quả để mã hóa và giải mã trong các ngôn ngữ khác nhau. Các. NET sử dụng
4.0.0 com.zetcode mongocommand 1.0-SNAPSHOT jar UTF-8 11 11 org.mongodb mongo-java-driver 3.10.21 để đại diện cho
org.mongodb mongo-java-driver x.y.z8
Cài đặt MongoDB
Lệnh sau có thể được sử dụng để cài đặt MongoDB trên Linux dựa trên Debian
$ sudo apt-get install mongodb
Lệnh cài đặt các gói cần thiết đi kèm với MongoDB
$ sudo service mongodb status mongodb start/running, process 975
Với lệnh
4.0.0 com.zetcode mongocommand 1.0-SNAPSHOT jar UTF-8 11 11 org.mongodb mongo-java-driver 3.10.23, chúng tôi kiểm tra trạng thái của máy chủ
4.0.0 com.zetcode mongocommand 1.0-SNAPSHOT jar UTF-8 11 11 org.mongodb mongo-java-driver 3.10.24
org.mongodb mongo-java-driver x.y.z0
Máy chủ
4.0.0 com.zetcode mongocommand 1.0-SNAPSHOT jar UTF-8 11 11 org.mongodb mongo-java-driver 3.10.24 được khởi động bằng lệnh
4.0.0 com.zetcode mongocommand 1.0-SNAPSHOT jar UTF-8 11 11 org.mongodb mongo-java-driver 3.10.26
Tạo cơ sở dữ liệu
Công cụ
4.0.0 com.zetcode mongocommand 1.0-SNAPSHOT jar UTF-8 11 11 org.mongodb mongo-java-driver 3.10.27 là giao diện shell JavaScript tương tác với MongoDB, cung cấp giao diện cho quản trị viên hệ thống cũng như cách để nhà phát triển kiểm tra các truy vấn và hoạt động trực tiếp với cơ sở dữ liệu
org.mongodb mongo-java-driver x.y.z4
Chúng tôi tạo cơ sở dữ liệu
4.0.0 com.zetcode mongocommand 1.0-SNAPSHOT jar UTF-8 11 11 org.mongodb mongo-java-driver 3.10.28 và chèn tám tài liệu vào bộ sưu tập
4.0.0 com.zetcode mongocommand 1.0-SNAPSHOT jar UTF-8 11 11 org.mongodb mongo-java-driver 3.10.29
Trình điều khiển Java MongoDB
Chúng tôi sử dụng khai báo Maven sau để đưa trình điều khiển Java MongoDB vào dự án của chúng tôi
org.mongodb mongo-java-driver x.y.z
Nó là một JAR tất cả trong một, nhúng trình điều khiển lõi và BSON. BSON, viết tắt của Binary JSON, là một tuần tự hóa được mã hóa nhị phân của các tài liệu giống như JSON
Java MongoDB liệt kê các bộ sưu tập cơ sở dữ liệu
Ví dụ đầu tiên kết nối với cơ sở dữ liệu
4.0.0 com.zetcode mongocommand 1.0-SNAPSHOT jar UTF-8 11 11 org.mongodb mongo-java-driver 3.10.28 và truy xuất các bộ sưu tập của nó
4.0.0 com.zetcode mongocommand 1.0-SNAPSHOT jar UTF-8 11 11 org.mongodb mongo-java-driver 3.10.2
Đây là tệp
org.mongodb mongo-java-driver x.y.z01 của chúng tôi
com/zetcode/MongoListCollections. java
org.mongodb mongo-java-driver x.y.z0
Ví dụ kết nối với cơ sở dữ liệu
4.0.0 com.zetcode mongocommand 1.0-SNAPSHOT jar UTF-8 11 11 org.mongodb mongo-java-driver 3.10.28 và truy xuất tất cả các bộ sưu tập của nó
org.mongodb mongo-java-driver x.y.z3
Chúng tôi đặt mức ghi nhật ký cho MongoDB. Chúng tôi chỉ hiển thị thông báo lỗi NGHIÊM TRỌNG
org.mongodb mongo-java-driver x.y.z4
Một lớp
org.mongodb mongo-java-driver x.y.z03 được sử dụng để kết nối với máy chủ MongoDB. Nó được tạo bằng lệnh gọi phương thức
org.mongodb mongo-java-driver x.y.z04. 27017 là cổng mặc định mà máy chủ MongoDB lắng nghe
org.mongodb mongo-java-driver x.y.z7
Với phương pháp
org.mongodb mongo-java-driver x.y.z05, chúng tôi lấy cơ sở dữ liệu
4.0.0 com.zetcode mongocommand 1.0-SNAPSHOT jar UTF-8 11 11 org.mongodb mongo-java-driver 3.10.28
$ sudo service mongodb status mongodb start/running, process 9750
Phương thức
org.mongodb mongo-java-driver x.y.z07 tìm tất cả các bộ sưu tập trong cơ sở dữ liệu
4.0.0 com.zetcode mongocommand 1.0-SNAPSHOT jar UTF-8 11 11 org.mongodb mongo-java-driver 3.10.28
$ sudo service mongodb status mongodb start/running, process 9751
Trong cơ sở dữ liệu của chúng tôi, chúng tôi có hai bộ sưu tập này
Thống kê cơ sở dữ liệu Java MongoDB
Ví dụ tiếp theo kết nối với cơ sở dữ liệu
4.0.0 com.zetcode mongocommand 1.0-SNAPSHOT jar UTF-8 11 11 org.mongodb mongo-java-driver 3.10.28 và lấy số liệu thống kê của nó
com/zetcode/MongoCommand. java
$ sudo service mongodb status mongodb start/running, process 9752
Ví dụ kết nối với cơ sở dữ liệu
4.0.0 com.zetcode mongocommand 1.0-SNAPSHOT jar UTF-8 11 11 org.mongodb mongo-java-driver 3.10.28 và thực hiện lệnh
org.mongodb mongo-java-driver x.y.z31. Nó cho thấy một số thống kê cơ sở dữ liệu
$ sudo service mongodb status mongodb start/running, process 9753
Với phương thức
org.mongodb mongo-java-driver x.y.z32, chúng ta thực hiện lệnh
org.mongodb mongo-java-driver x.y.z31. Lệnh trả về một
org.mongodb mongo-java-driver x.y.z34, đại diện cho tài liệu MongoDB dưới dạng bản đồ
$ sudo service mongodb status mongodb start/running, process 9754
Chúng tôi lặp qua các mục của tài liệu
$ sudo service mongodb status mongodb start/running, process 9755
Java MongoDB đọc dữ liệu
org.mongodb mongo-java-driver x.y.z35 được sử dụng để lưu trữ các tài liệu mongo được trả về từ một bộ sưu tập.
org.mongodb mongo-java-driver x.y.z36 là một con trỏ để lặp qua các kết quả của một truy vấn cơ sở dữ liệu. Nó đảm bảo rằng nó được đóng lại trong trường hợp có ngoại lệ
com/zetcode/MongoReadAll. java
$ sudo service mongodb status mongodb start/running, process 9756
Trong ví dụ này, chúng tôi lặp lại tất cả dữ liệu của bộ sưu tập
4.0.0 com.zetcode mongocommand 1.0-SNAPSHOT jar UTF-8 11 11 org.mongodb mongo-java-driver 3.10.29
$ sudo service mongodb status mongodb start/running, process 9757
Chúng tôi truy xuất bộ sưu tập
4.0.0 com.zetcode mongocommand 1.0-SNAPSHOT jar UTF-8 11 11 org.mongodb mongo-java-driver 3.10.29 bằng phương pháp
org.mongodb mongo-java-driver x.y.z39
$ sudo service mongodb status mongodb start/running, process 9758
Chúng tôi lặp qua các tài liệu của bộ sưu tập. Phương pháp
org.mongodb mongo-java-driver x.y.z40 tìm tất cả các tài liệu trong bộ sưu tập
$ sudo service mongodb status mongodb start/running, process 9759
Toán tử truy vấn Java MongoDB
Có thể lọc dữ liệu bằng các toán tử truy vấn MongoDB, chẳng hạn như
org.mongodb mongo-java-driver x.y.z41,
org.mongodb mongo-java-driver x.y.z42 hoặc
org.mongodb mongo-java-driver x.y.z43. Các toán tử truy vấn có thể được chỉ định trong lớp
org.mongodb mongo-java-driver x.y.z44
com/zetcode/MongoReadGreaterThan. java
org.mongodb mongo-java-driver x.y.z00
Ví dụ in tất cả các tài liệu có giá ô tô' lớn hơn 30.000
Chúng tôi sử dụng toán tử truy vấn
org.mongodb mongo-java-driver x.y.z41
org.mongodb mongo-java-driver x.y.z02
Phương thức
org.mongodb mongo-java-driver x.y.z46 là một cách viết cú pháp để mã ứng dụng không cần phải lo lắng về việc phải đóng con trỏ theo cách thủ công. Dữ liệu được in ở định dạng JSON bằng phương pháp
org.mongodb mongo-java-driver x.y.z47
org.mongodb mongo-java-driver x.y.z03
Đây là đầu ra của ví dụ ở định dạng JSON. Chỉ bao gồm những chiếc xe đắt hơn 30.000
Các phương thức truy vấn bộ lọc nhà máy Java MongoDB
Trình điều khiển Java MongoDB chứa các phương thức xuất xưởng cho các bộ lọc truy vấn
com/zetcode/MongoFilter. java
org.mongodb mongo-java-driver x.y.z04
Trong ví dụ, chúng tôi truy xuất những chiếc ô tô có giá rơi vào khoảng từ 20.000 đến 50.000
org.mongodb mongo-java-driver x.y.z05
org.mongodb mongo-java-driver x.y.z48,
org.mongodb mongo-java-driver x.y.z49 và
org.mongodb mongo-java-driver x.y.z70 là các phương thức lọc của nhà máy. Ngoài ra, dữ liệu được sắp xếp theo phương pháp
org.mongodb mongo-java-driver x.y.z71
org.mongodb mongo-java-driver x.y.z06
Các phép chiếu Java MongoDB
Lớp
org.mongodb mongo-java-driver x.y.z72 cung cấp các phương thức xuất xưởng tĩnh cho tất cả các toán tử chiếu MongoDB. Theo mặc định, tất cả các trường của mỗi tài liệu được chiếu. Chúng tôi có thể sử dụng các phương pháp
org.mongodb mongo-java-driver x.y.z73 và
org.mongodb mongo-java-driver x.y.z74 để xác định trường nào sẽ được chiếu vào đầu ra của chúng tôi
com/zetcode/MongoProjection. java
org.mongodb mongo-java-driver x.y.z07
Ví dụ loại trừ trường
org.mongodb mongo-java-driver x.y.z75 khỏi đầu ra
org.mongodb mongo-java-driver x.y.z08
Phương thức
org.mongodb mongo-java-driver x.y.z76 thiết lập một tài liệu mô tả các trường để trả về cho tất cả các tài liệu phù hợp.
org.mongodb mongo-java-driver x.y.z77 là một từ đồng nghĩa với
org.mongodb mongo-java-driver x.y.z78
org.mongodb mongo-java-driver x.y.z09
Xuất dữ liệu giới hạn Java MongoDB
Tùy chọn truy vấn
org.mongodb mongo-java-driver x.y.z79 chỉ định số lượng tài liệu được trả về và tùy chọn
$ sudo service mongodb status mongodb start/running, process 97500 bỏ qua số lượng tài liệu đã chỉ định
com/zetcode/MongoSkipLimit. java
org.mongodb mongo-java-driver x.y.z40
Ví dụ đọc từ bộ sưu tập
$ sudo service mongodb status mongodb start/running, process 97501, bỏ qua hai tài liệu đầu tiên và giới hạn đầu ra ở năm tài liệu
org.mongodb mongo-java-driver x.y.z41
Phương pháp
$ sudo service mongodb status mongodb start/running, process 97502
$ sudo service mongodb status mongodb start/running, process 97500 bỏ qua hai tài liệu đầu tiên và phương pháp
org.mongodb mongo-java-driver x.y.z79 giới hạn đầu ra ở năm tài liệu
org.mongodb mongo-java-driver x.y.z42
Ở đây chúng tôi sử dụng cấu trúc Java 8 để in tài liệu
org.mongodb mongo-java-driver x.y.z43
Java MongoDB tạo bộ sưu tập
Phương thức
$ sudo service mongodb status mongodb start/running, process 97505
$ sudo service mongodb status mongodb start/running, process 97506 tạo một bộ sưu tập mới trong cơ sở dữ liệu. Phương pháp
$ sudo service mongodb status mongodb start/running, process 97507
$ sudo service mongodb status mongodb start/running, process 97508 chèn một hoặc nhiều tài liệu vào bộ sưu tập
com/zetcode/MongoCreateCollection. java
org.mongodb mongo-java-driver x.y.z44
Ví dụ tạo một bộ sưu tập
4.0.0 com.zetcode mongocommand 1.0-SNAPSHOT jar UTF-8 11 11 org.mongodb mongo-java-driver 3.10.29 và chèn chín tài liệu vào đó
org.mongodb mongo-java-driver x.y.z45
Một bộ sưu tập mới được tạo bằng phương pháp
$ sudo service mongodb status mongodb start/running, process 97506. Nếu bộ sưu tập đã tồn tại, nó sẽ bị loại bỏ
$ sudo service mongodb status mongodb start/running, process 9757
Một
org.mongodb mongo-java-driver x.y.z35 tài liệu được tạo bằng phương thức
org.mongodb mongo-java-driver x.y.z39
org.mongodb mongo-java-driver x.y.z47
Một
org.mongodb mongo-java-driver x.y.z34 mới được tạo. Nó chứa thông tin về chiếc xe—ID, tên và giá của nó
org.mongodb mongo-java-driver x.y.z48
Các tài liệu được ghi vào bộ sưu tập bằng phương pháp
$ sudo service mongodb status mongodb start/running, process 97508
Java MongoDB tạo bộ sưu tập từ JSON
Lớp
org.mongodb mongo-java-driver x.y.z7 có các phương thức phân tích tài liệu JSON. JSON [Ký hiệu đối tượng JavaScript] là một định dạng trao đổi dữ liệu nhẹ. Thật dễ dàng cho con người để đọc và viết
com/zetcode/MongoCollectionFromJSON. java
org.mongodb mongo-java-driver x.y.z49
Ví dụ tạo bộ sưu tập
$ sudo service mongodb status mongodb start/running, process 97516 từ dữ liệu JSON
org.mongodb mongo-java-driver x.y.z0
Dữ liệu JSON được phân tích cú pháp bằng phương thức
$ sudo service mongodb status mongodb start/running, process 97517
org.mongodb mongo-java-driver x.y.z1
org.mongodb mongo-java-driver x.y.z44 được chuyển đến
org.mongodb mongo-java-driver x.y.z34 và chèn vào bộ sưu tập bằng phương pháp
$ sudo service mongodb status mongodb start/running, process 97520
org.mongodb mongo-java-driver x.y.z2
Chúng tôi hiển thị bộ sưu tập đã tạo với
4.0.0 com.zetcode mongocommand 1.0-SNAPSHOT jar UTF-8 11 11 org.mongodb mongo-java-driver 3.10.27
Java MongoDB sửa đổi tài liệu
Phương pháp
$ sudo service mongodb status mongodb start/running, process 97507
$ sudo service mongodb status mongodb start/running, process 97523 được sử dụng để xóa tài liệu và
$ sudo service mongodb status mongodb start/running, process 97524 để cập nhật tài liệu
com/zetcode/MongoModify. java
org.mongodb mongo-java-driver x.y.z3
Ví dụ xóa tài liệu chứa Skoda và cập nhật giá xe Audi
org.mongodb mongo-java-driver x.y.z4
$ sudo service mongodb status mongodb start/running, process 97523 xóa tài liệu của
$ sudo service mongodb status mongodb start/running, process 97526.
$ sudo service mongodb status mongodb start/running, process 97527 tạo bộ lọc khớp với tất cả các tài liệu trong đó giá trị của tên trường bằng với giá trị đã chỉ định