Trình điều khiển Java MongoDB

Đối với các sự cố, câu hỏi hoặc phản hồi về trình điều khiển Java MongoDB, vui lòng xem các kênh hỗ trợ của chúng tôi. Vui lòng không gửi email trực tiếp cho bất kỳ nhà phát triển trình điều khiển Java nào với các vấn đề hoặc câu hỏi - bạn có nhiều khả năng nhận được câu trả lời trên Diễn đàn cộng đồng MongoDB

Ở mức tối thiểu, vui lòng bao gồm trong mô tả của bạn phiên bản chính xác của trình điều khiển mà bạn đang sử dụng. Nếu bạn đang gặp sự cố kết nối, việc dán vào dòng mã mà bạn xây dựng phiên bản MongoClient, cùng với các giá trị của tất cả các tham số mà bạn chuyển đến hàm tạo, cũng rất hữu ích. Bạn cũng nên kiểm tra nhật ký ứng dụng của mình để biết bất kỳ ngoại lệ nào liên quan đến kết nối và cũng đăng chúng

Lỗi / Yêu cầu tính năng

Nghĩ rằng bạn đã tìm thấy một lỗi?

  • Tạo một tài khoản và đăng nhập
  • Điều hướng đến dự án JAVA
  • Nhấp vào Tạo sự cố - Vui lòng cung cấp càng nhiều thông tin càng tốt về loại sự cố và cách tạo lại sự cố đó

Báo cáo lỗi trong JIRA cho trình điều khiển và Máy chủ lõi (i. e. SERVER) được công khai

Nếu bạn đã xác định được lỗ hổng bảo mật trong trình điều khiển hoặc bất kỳ dự án MongoDB nào khác, vui lòng báo cáo theo hướng dẫn tại đây

lập phiên bản

Các gia số chính (chẳng hạn như 2. x -> 3. x) sẽ xảy ra khi các thay đổi ngắt đang được thực hiện đối với API công khai. Tất cả các phương thức và lớp bị loại bỏ trong bản phát hành chính sẽ không được dùng nữa trong bản phát hành trước của nhánh phát hành chính trước đó và/hoặc được gọi ra trong ghi chú phát hành

nhỏ 3. x gia số (chẳng hạn như 3. 1, 3. 2, v.v.) sẽ xảy ra khi chức năng mới không tầm thường được thêm vào hoặc xảy ra các cải tiến quan trọng hoặc sửa lỗi có thể có các thay đổi về hành vi có thể ảnh hưởng đến một số trường hợp cạnh (chẳng hạn như phụ thuộc vào hành vi do lỗi). Một ví dụ về cải tiến là một phương thức hoặc lớp được thêm vào để hỗ trợ chức năng mới được thêm vào máy chủ MongoDB. Các bản phát hành nhỏ hầu như sẽ luôn tương thích nhị phân với các bản phát hành nhỏ trước đó từ cùng một nhánh phát hành chính, ngoại trừ như được lưu ý bên dưới

Bản vá 3. x. y gia số (chẳng hạn như 3. 0. 0 -> 3. 0. 1, 3. 1. 1 -> 3. 1. 2, v.v.) sẽ chỉ xảy ra đối với các bản sửa lỗi và sẽ luôn tương thích nhị phân với các bản phát hành bản vá trước đó của cùng một nhánh phát hành nhỏ

@Beta

Các API được đánh dấu bằng chú thích

$ git clone https://github.com/mongodb/mongo-java-driver.git
$ cd mongo-java-driver
$ ./gradlew check
3 ở cấp lớp hoặc phương thức có thể thay đổi. Chúng có thể được sửa đổi theo bất kỳ cách nào hoặc thậm chí bị xóa bất kỳ lúc nào. Nếu mã của bạn là một thư viện (i. e. nó được sử dụng trên CLASSPATH của người dùng ngoài tầm kiểm soát của bạn), bạn không nên sử dụng API beta, trừ khi bạn đóng gói lại chúng (e. g. bằng cách sử dụng bóng, v.v.)

@Không dùng nữa

Các API được đánh dấu bằng chú thích

$ git clone https://github.com/mongodb/mongo-java-driver.git
$ cd mongo-java-driver
$ ./gradlew check
4 ở cấp lớp hoặc phương thức sẽ vẫn được hỗ trợ cho đến khi phát hành chính tiếp theo nhưng bạn nên ngừng sử dụng chúng

com. mongodb. nội bộ. *

Tất cả mã bên trong các gói

$ git clone https://github.com/mongodb/mongo-java-driver.git
$ cd mongo-java-driver
$ ./gradlew check
5 được coi là API riêng tư và hoàn toàn không nên dựa vào. Nó có thể thay đổi bất cứ lúc nào

nhị phân

Có thể tìm thấy thông tin phụ thuộc và nhị phân cho Maven, Gradle, Ivy và những thông tin khác tại http. //Tìm kiếm. con quạ. tổ chức

Ví dụ cho Maven

<dependency>
    <groupId>org.mongodbgroupId>
    <artifactId>mongodb-driver-syncartifactId>
    <version>x.y.zversion>
dependency>

Bản dựng ảnh chụp nhanh cũng được xuất bản thường xuyên qua Sonatype

Ví dụ cho Maven

    <repositories>
        <repository>
            <id>sonatype-snapshotid>
            <url>https://oss.sonatype.org/content/repositories/snapshots/url>
        repository>
    repositories>

Xây dựng

Cần có Java 17+ và git để xây dựng và biên dịch mã nguồn. Để xây dựng và kiểm tra trình điều khiển

$ git clone https://github.com/mongodb/mongo-java-driver.git
$ cd mongo-java-driver
$ ./gradlew check

Bộ thử nghiệm yêu cầu mongod chạy với

$ git clone https://github.com/mongodb/mongo-java-driver.git
$ cd mongo-java-driver
$ ./gradlew check
6, có thể được đặt bằng tham số dòng lệnh
$ git clone https://github.com/mongodb/mongo-java-driver.git
$ cd mongo-java-driver
$ ./gradlew check
7

$ mkdir -p data/db
$ mongod --dbpath ./data/db --logpath ./data/mongod.log --port 27017 --logappend --fork --setParameter enableTestCommands=1

Nếu bạn gặp lỗi

$ git clone https://github.com/mongodb/mongo-java-driver.git
$ cd mongo-java-driver
$ ./gradlew check
8 khi chạy thử nghiệm thì bạn sẽ cần tăng số lượng bộ mô tả tệp có sẵn trước khi bắt đầu mongod như được mô tả trong https. //www. mongodb. com/docs/manual/reference/ulimit/

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

________số 8

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

    <repositories>
        <repository>
            <id>sonatype-snapshotid>
            <url>https://oss.sonatype.org/content/repositories/snapshots/url>
        repository>
    repositories>
0

đầu ra sẽ là

    <repositories>
        <repository>
            <id>sonatype-snapshotid>
            <url>https://oss.sonatype.org/content/repositories/snapshots/url>
        repository>
    repositories>
1

Ở 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

    <repositories>
        <repository>
            <id>sonatype-snapshotid>
            <url>https://oss.sonatype.org/content/repositories/snapshots/url>
        repository>
    repositories>
2

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

    <repositories>
        <repository>
            <id>sonatype-snapshotid>
            <url>https://oss.sonatype.org/content/repositories/snapshots/url>
        repository>
    repositories>
3

đầ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 có

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

Làm cách nào để cài đặt trình điều khiển MongoDB cho Java?

Lược đồ của nó có ít mô hình hơn. .
Các tính năng của MongoDB như sau
Bước 1. Người ta cần cài đặt trình điều khiển thích hợp cho MongoDB từ đây và sau đó ở đầu trang, bạn sẽ tìm thấy Sản phẩm. .
Bước 2. Sau khi nhấp vào, bạn sẽ chuyển hướng đến một trang web khác. .
Bước 3. Bây giờ hãy tìm kiếm MongoDB từ danh sách đã cho

Làm cách nào để sử dụng trình điều khiển Java MongoDB?

Truy cập cơ sở dữ liệu . use the MongoClient. phương thức getDatabase() để truy cập cơ sở dữ liệu . Chỉ định tên của cơ sở dữ liệu cho phương thức getDatabase(). Nếu cơ sở dữ liệu không tồn tại, MongoDB sẽ tạo cơ sở dữ liệu khi bạn lưu trữ dữ liệu cho cơ sở dữ liệu đó lần đầu tiên.

Có trình điều khiển JDBC cho MongoDB không?

Trình điều khiển JDBC cho MongoDB cho phép truy vấn SQL trên MongoDB cho bất kỳ phần mềm nào hỗ trợ JDBC. Hỗ trợ SQL bao gồm các hàm, biểu thức, tập hợp và liên kết bao gồm cả các bộ sưu tập có các đối tượng và mảng lồng nhau.

Làm cách nào để kết nối MongoDB với Java?

Hướng dẫn kết nối .
Kết nối với MongoDB
Xem danh sách các tùy chọn kết nối
Chỉ định hành vi kết nối với lớp MongoClient
Kích hoạt tính năng nén mạng
Kích hoạt TLS/SSL trên kết nối
Kết nối với MongoDB bằng Nguồn dữ liệu JNDI