Khách hàng mongodb mới

Trong bài viết này, chúng ta sẽ xem xét việc tích hợp MongoDB, một cơ sở dữ liệu mã nguồn mở NoSQL rất phổ biến với một máy khách Java độc lập

MongoDB được viết bằng C++ và có khá nhiều tính năng vững chắc như thu nhỏ bản đồ, tự động bảo vệ, sao chép, tính sẵn sàng cao, v.v.

2. MongoDB

Hãy bắt đầu với một vài điểm chính về bản thân MongoDB

  • lưu trữ dữ liệu trong các tài liệu giống như JSON có thể có nhiều cấu trúc khác nhau
  • sử dụng lược đồ động, có nghĩa là chúng tôi có thể tạo bản ghi mà không cần xác định trước bất kỳ điều gì
  • cấu trúc của một bản ghi có thể được thay đổi đơn giản bằng cách thêm các trường mới hoặc xóa các trường hiện có

Mô hình dữ liệu nêu trên cho chúng ta khả năng biểu diễn các mối quan hệ phân cấp, lưu trữ các mảng và các cấu trúc phức tạp khác một cách dễ dàng

3. thuật ngữ

Việc hiểu các khái niệm trong MongoDB trở nên dễ dàng hơn nếu chúng ta có thể so sánh chúng với các cấu trúc cơ sở dữ liệu quan hệ

Hãy xem sự tương đồng giữa Mongo và hệ thống MySQL truyền thống

  • Bảng trong MySQL trở thành Bộ sưu tập trong Mongo
  • Hàng trở thành Tài liệu
  • Cột trở thành Trường
  • Tham gia được định nghĩa là tài liệu liên kết và nhúng

Tất nhiên, đây là một cách đơn giản để xem xét các khái niệm cốt lõi của MongoDB, nhưng vẫn hữu ích

Bây giờ, hãy đi sâu vào triển khai để hiểu cơ sở dữ liệu mạnh mẽ này

4. Phụ thuộc Maven

Chúng ta cần bắt đầu bằng cách xác định sự phụ thuộc của Trình điều khiển Java cho MongoDB


    org.mongodb
    mongo-java-driver
    3.4.1

Để kiểm tra xem có phiên bản mới nào của thư viện được phát hành hay không – hãy theo dõi các bản phát hành tại đây

5. Sử dụng MongoDB

Bây giờ, hãy bắt đầu triển khai các truy vấn Mongo với Java. Chúng tôi sẽ làm theo các thao tác CRUD cơ bản vì chúng là cách tốt nhất để bắt đầu

5. 1. Tạo kết nối với MongoClient

Trước tiên, hãy tạo kết nối đến máy chủ MongoDB. Với phiên bản >= 2. 10. 0, chúng tôi sẽ sử dụng MongoClient

MongoClient mongoClient = new MongoClient("localhost", 27017);

Và đối với các phiên bản cũ hơn, hãy sử dụng lớp Mongo

Mongo mongo = new Mongo("localhost", 27017);

5. 2. Kết nối với cơ sở dữ liệu

Bây giờ, hãy kết nối với cơ sở dữ liệu của chúng tôi. Thật thú vị khi lưu ý rằng chúng ta không cần phải tạo một. Khi Mongo thấy cơ sở dữ liệu đó không tồn tại, nó sẽ tạo nó cho chúng ta

DB database = mongoClient.getDB("myMongoDb");

Đôi khi, theo mặc định, MongoDB chạy ở chế độ xác thực. Trong trường hợp đó, chúng tôi cần xác thực trong khi kết nối với cơ sở dữ liệu

Chúng tôi có thể làm điều đó như trình bày dưới đây

MongoClient mongoClient = new MongoClient();
DB database = mongoClient.getDB("myMongoDb");
boolean auth = database.authenticate("username", "pwd".toCharArray());

5. 3. Hiển thị cơ sở dữ liệu hiện có

Hãy hiển thị tất cả các cơ sở dữ liệu hiện có. Khi chúng ta muốn sử dụng dòng lệnh, cú pháp để hiển thị cơ sở dữ liệu tương tự như MySQL

show databases;

Trong Java, chúng tôi hiển thị cơ sở dữ liệu bằng đoạn mã bên dưới

mongoClient.getDatabaseNames().forEach(System.out::println);

đầu ra sẽ là

local      0.000GB
myMongoDb  0.000GB

Ở trên, local là cơ sở dữ liệu Mongo mặc định

5. 4. Tạo Bộ sưu tập

Hãy bắt đầu bằng cách tạo một Bộ sưu tập (bảng tương đương với MongoDB) cho cơ sở dữ liệu của chúng ta. Khi chúng tôi đã kết nối với cơ sở dữ liệu của mình, chúng tôi có thể tạo Bộ sưu tập dưới dạng

________số 8

Bây giờ, hãy hiển thị tất cả các bộ sưu tập hiện có cho cơ sở dữ liệu hiện tại

database.getCollectionNames().forEach(System.out::println);

đầu ra sẽ là

MongoClient mongoClient = new MongoClient("localhost", 27017);
0

5. 5. Lưu – Chèn

Thao tác lưu có ngữ nghĩa lưu hoặc cập nhật. nếu có id, nó sẽ thực hiện cập nhật, nếu không - nó sẽ thực hiện thao tác chèn

Khi chúng tôi cứu một khách hàng mới

MongoClient mongoClient = new MongoClient("localhost", 27017);
1

Thực thể sẽ được chèn vào cơ sở dữ liệu

MongoClient mongoClient = new MongoClient("localhost", 27017);
2

Tiếp theo, chúng ta sẽ xem xét thao tác tương tự - lưu - với ngữ nghĩa cập nhật

5. 6. Lưu – Cập nhật

Bây giờ chúng ta hãy xem lưu với ngữ nghĩa cập nhật, hoạt động trên một khách hàng hiện tại

MongoClient mongoClient = new MongoClient("localhost", 27017);
2

Bây giờ, khi chúng tôi lưu khách hàng hiện tại – chúng tôi sẽ cập nhật nó

MongoClient mongoClient = new MongoClient("localhost", 27017);
4

Cơ sở dữ liệu sẽ trông như thế này

MongoClient mongoClient = new MongoClient("localhost", 27017);
5

Như bạn có thể thấy, trong ví dụ cụ thể này, lưu sử dụng ngữ nghĩa của cập nhật, bởi vì chúng tôi sử dụng đối tượng với _id đã cho

5. 7. Đọc một tài liệu từ một bộ sưu tập

Hãy tìm kiếm Tài liệu trong Bộ sưu tập bằng cách thực hiện truy vấn

MongoClient mongoClient = new MongoClient("localhost", 27017);
6

Nó sẽ hiển thị Tài liệu duy nhất chúng tôi có trong Bộ sưu tập của chúng tôi

MongoClient mongoClient = new MongoClient("localhost", 27017);
7

5. 8. Xóa một tài liệu

Hãy chuyển sang thao tác CRUD cuối cùng của chúng ta, xóa

MongoClient mongoClient = new MongoClient("localhost", 27017);
8

Với lệnh trên được thực thi, Tài liệu duy nhất của chúng tôi sẽ bị xóa khỏi Bộ sưu tập

6. Phần kết luận

Bài viết này là phần giới thiệu nhanh về cách sử dụng MongoDB từ Java

Việc triển khai tất cả các ví dụ và đoạn mã này có thể được tìm thấy trên GitHub – đây là một dự án dựa trên Maven, vì vậy sẽ dễ dàng nhập và chạy như hiện tại