Java mongodb tìm theo trường

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.z

7 ở định dạng được mã hóa nhị phân có tên là
    org.mongodb
    mongo-java-driver
    x.y.z

8 đằng sau hậu trường.
    org.mongodb
    mongo-java-driver
    x.y.z

8 mở rộng mô hình
    org.mongodb
    mongo-java-driver
    x.y.z

7 để 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.2
        
    


1 để đại diện cho
    org.mongodb
    mongo-java-driver
    x.y.z

8

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.2
        
    


3, 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.2
        
    


4

    org.mongodb
    mongo-java-driver
    x.y.z

0

Máy chủ


    4.0.0

    com.zetcode
    mongocommand
    1.0-SNAPSHOT
    jar

    
        UTF-8
        11
        11
    

    
        
            org.mongodb
            mongo-java-driver
            3.10.2
        
    


4 đượ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.2
        
    


6

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.2
        
    


7 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.z

4

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.2
        
    


8 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.2
        
    


9

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.2
        
    


8 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.z

01 của chúng tôi

com/zetcode/MongoListCollections. java

    org.mongodb
    mongo-java-driver
    x.y.z

0

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.2
        
    


8 và truy xuất tất cả các bộ sưu tập của nó

    org.mongodb
    mongo-java-driver
    x.y.z

3

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.z

4

Một lớp

    org.mongodb
    mongo-java-driver
    x.y.z

03 đượ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.z

04. 27017 là cổng mặc định mà máy chủ MongoDB lắng nghe

    org.mongodb
    mongo-java-driver
    x.y.z

7

Với phương pháp

    org.mongodb
    mongo-java-driver
    x.y.z

05, 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.2
        
    


8

$ sudo service mongodb status
mongodb start/running, process 975
0

Phương thức

    org.mongodb
    mongo-java-driver
    x.y.z

07 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.2
        
    


8

$ sudo service mongodb status
mongodb start/running, process 975
1

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.2
        
    


8 và lấy số liệu thống kê của nó

com/zetcode/MongoCommand. java

$ sudo service mongodb status
mongodb start/running, process 975
2

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.2
        
    


8 và thực hiện lệnh
    org.mongodb
    mongo-java-driver
    x.y.z

31. Nó cho thấy một số thống kê cơ sở dữ liệu

$ sudo service mongodb status
mongodb start/running, process 975
3

Với phương thức

    org.mongodb
    mongo-java-driver
    x.y.z

32, chúng ta thực hiện lệnh
    org.mongodb
    mongo-java-driver
    x.y.z

31. Lệnh trả về một
    org.mongodb
    mongo-java-driver
    x.y.z

34, đại diện cho tài liệu MongoDB dưới dạng bản đồ

$ sudo service mongodb status
mongodb start/running, process 975
4

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 975
5

Java MongoDB đọc dữ liệu

    org.mongodb
    mongo-java-driver
    x.y.z

35 đượ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.z

36 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 975
6

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.2
        
    


9

$ sudo service mongodb status
mongodb start/running, process 975
7

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.2
        
    


9 bằng phương pháp
    org.mongodb
    mongo-java-driver
    x.y.z

39

$ sudo service mongodb status
mongodb start/running, process 975
8

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.z

40 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 975
9

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.z

41,
    org.mongodb
    mongo-java-driver
    x.y.z

42 hoặc
    org.mongodb
    mongo-java-driver
    x.y.z

43. Các toán tử truy vấn có thể được chỉ định trong lớp
    org.mongodb
    mongo-java-driver
    x.y.z

44

com/zetcode/MongoReadGreaterThan. java

    org.mongodb
    mongo-java-driver
    x.y.z

00

Ví dụ in tất cả các tài liệu có giá ô tô' lớn hơn 30.000

sbygoogle = cửa sổ. quảng cáo của Google. []). đẩy({});____101

Chúng tôi sử dụng toán tử truy vấn

    org.mongodb
    mongo-java-driver
    x.y.z

41

    org.mongodb
    mongo-java-driver
    x.y.z

02

Phương thức

    org.mongodb
    mongo-java-driver
    x.y.z

46 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.z

47

    org.mongodb
    mongo-java-driver
    x.y.z

03

Đâ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.z

04

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.z

05

    org.mongodb
    mongo-java-driver
    x.y.z

48,
    org.mongodb
    mongo-java-driver
    x.y.z

49 và
    org.mongodb
    mongo-java-driver
    x.y.z

70 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.z

71

    org.mongodb
    mongo-java-driver
    x.y.z

06

Các phép chiếu Java MongoDB

Lớp

    org.mongodb
    mongo-java-driver
    x.y.z

72 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.z

73 và
    org.mongodb
    mongo-java-driver
    x.y.z

74 để 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.z

07

Ví dụ loại trừ trường

    org.mongodb
    mongo-java-driver
    x.y.z

75 khỏi đầu ra

    org.mongodb
    mongo-java-driver
    x.y.z

08

Phương thức

    org.mongodb
    mongo-java-driver
    x.y.z

76 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.z

77 là một từ đồng nghĩa với
    org.mongodb
    mongo-java-driver
    x.y.z

78

    org.mongodb
    mongo-java-driver
    x.y.z

09

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.z

79 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 975
00 bỏ qua số lượng tài liệu đã chỉ định

com/zetcode/MongoSkipLimit. java

    org.mongodb
    mongo-java-driver
    x.y.z

40

Ví dụ đọc từ bộ sưu tập

$ sudo service mongodb status
mongodb start/running, process 975
01, 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.z

41

Phương pháp

$ sudo service mongodb status
mongodb start/running, process 975
02
$ sudo service mongodb status
mongodb start/running, process 975
00 bỏ qua hai tài liệu đầu tiên và phương pháp
    org.mongodb
    mongo-java-driver
    x.y.z

79 giới hạn đầu ra ở năm tài liệu

    org.mongodb
    mongo-java-driver
    x.y.z

42

Ở đâ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.z

43

Java MongoDB tạo bộ sưu tập

Phương thức

$ sudo service mongodb status
mongodb start/running, process 975
05
$ sudo service mongodb status
mongodb start/running, process 975
06 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 975
07
$ sudo service mongodb status
mongodb start/running, process 975
08 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.z

44

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.2
        
    


9 và chèn chín tài liệu vào đó

    org.mongodb
    mongo-java-driver
    x.y.z

45

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 975
06. 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 975
7

Một

    org.mongodb
    mongo-java-driver
    x.y.z

35 tài liệu được tạo bằng phương thức
    org.mongodb
    mongo-java-driver
    x.y.z

39

    org.mongodb
    mongo-java-driver
    x.y.z

47

Một

    org.mongodb
    mongo-java-driver
    x.y.z

34 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.z

48

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 975
08

Java MongoDB tạo bộ sưu tập từ JSON

Lớp

    org.mongodb
    mongo-java-driver
    x.y.z

7 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.z

49

Ví dụ tạo bộ sưu tập

$ sudo service mongodb status
mongodb start/running, process 975
16 từ dữ liệu JSON

    org.mongodb
    mongo-java-driver
    x.y.z

0

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 975
17

    org.mongodb
    mongo-java-driver
    x.y.z

1

    org.mongodb
    mongo-java-driver
    x.y.z

44 được chuyển đến
    org.mongodb
    mongo-java-driver
    x.y.z

34 và chèn vào bộ sưu tập bằng phương pháp
$ sudo service mongodb status
mongodb start/running, process 975
20

    org.mongodb
    mongo-java-driver
    x.y.z

2

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.2
        
    


7

Java MongoDB sửa đổi tài liệu

Phương pháp

$ sudo service mongodb status
mongodb start/running, process 975
07
$ sudo service mongodb status
mongodb start/running, process 975
23 được sử dụng để xóa tài liệu và
$ sudo service mongodb status
mongodb start/running, process 975
24 để cập nhật tài liệu

com/zetcode/MongoModify. java

    org.mongodb
    mongo-java-driver
    x.y.z

3

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.z

4

$ sudo service mongodb status
mongodb start/running, process 975
23 xóa tài liệu của
$ sudo service mongodb status
mongodb start/running, process 975
26.
$ sudo service mongodb status
mongodb start/running, process 975
27 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

Làm cách nào để sử dụng tìm kiếm trong MongoDB trong Java?

Bạn có thể truy xuất một tài liệu trong một bộ sưu tập bằng cách xâu chuỗi các phương thức find() và first() trên đối tượng MongoCollection . Bạn có thể chuyển bộ lọc truy vấn tới phương thức find() để truy vấn và trả về các tài liệu khớp với bộ lọc trong bộ sưu tập.

BasicDBObject trong Java là gì?

public BasicDBObject(String key, Object value) Tạo đối tượng với khóa/giá trị đã cho . Thông số. khóa - khóa để lưu trữ giá trị - giá trị để lưu trữ.

Làm cách nào để kiểm tra trường có giá trị rỗng hay không trong MongoDB?

Mục {. null } truy vấn khớp với tài liệu chứa trường mục có giá trị null hoặc không chứa trường mục. Truy vấn trả về cả hai tài liệu trong bộ sưu tập.