MongoDB có hoạt động với mảng không?

MongoDB là cơ sở dữ liệu NoSQL định hướng tài liệu phân tán và mã nguồn mở phổ biến nhất. Một tài liệu trong MongoDB là một cấu trúc dữ liệu với các đối tượng giống như JSON có các cặp trường và giá trị

Để chèn tài liệu vào bộ sưu tập MongoDB, chúng ta có thể sử dụng các phương thức khác nhau như insert(), insertOne() và insertMany()

Trong hướng dẫn này, chúng ta sẽ thảo luận về cách chèn một mảng bên trong tài liệu MongoDB. Trước tiên, chúng ta sẽ xem xét việc chèn một mảng vào tài liệu bằng truy vấn MongoDB Shell. Sau đó, chúng tôi sẽ sử dụng mã trình điều khiển Java MongoDB

2. Khởi tạo cơ sở dữ liệu

Trước khi chúng ta chuyển sang các truy vấn chèn, trước tiên hãy tạo một cơ sở dữ liệu. Hãy gọi nó là baeldung. Chúng tôi cũng sẽ tạo một bộ sưu tập mẫu có tên sinh viên

use baeldung;
db.createCollection(student);

Với lệnh này, cơ sở dữ liệu baeldung mẫu và bộ sưu tập sinh viên của chúng tôi đã được thiết lập thành công. Chúng tôi sẽ sử dụng những điều này để chứng minh trong tất cả các ví dụ

3. Sử dụng MongoDB Shell

Để chèn một mảng vào một bộ sưu tập bằng MongoDB Shell, chúng ta chỉ cần chuyển mảng đó dưới dạng một loại JSON Array cho shell

db.student.insert({
    "studentId" : "STU1",
    "name" : "Avin",
    "Age" : 12,
    "courses" : ["Science", "Math"]
});

Truy vấn trên chèn một tài liệu với một mảng vào tập hợp sinh viên. Chúng tôi có thể xác minh kết quả bằng cách truy vấn các tài liệu của bộ sưu tập sinh viên bằng cách sử dụng toán tử tìm

db.student.find();

Truy vấn trên trả về tài liệu tuyển tập sinh viên đã chèn

{
    "_id" : ObjectId("631da4197581ba6bc1d2524d"),
    "studentId" : "STU1",
    "name" : "Avin",
    "Age" : 12,
    "courses" : [ "Science", "Math" ]
}

4. Thao tác chèn bằng mã trình điều khiển Java

Trình điều khiển Java MongoDB cung cấp nhiều phương thức tiện lợi khác nhau để giúp chúng tôi chèn tài liệu vào bộ sưu tập

  • insert() – Chèn một tài liệu hoặc nhiều tài liệu vào một bộ sưu tập
  • insertOne() – Chèn một tài liệu vào một bộ sưu tập
  • insertMany() – Chèn nhiều tài liệu vào một bộ sưu tập

Bất kỳ phương pháp nào ở trên đều có thể được sử dụng để thực hiện thao tác chèn trên bộ sưu tập MongoDB

Tiếp theo, hãy đi sâu vào triển khai thao tác chèn mảng bằng Trình điều khiển Java MongoDB. Trình điều khiển Java MongoDB hỗ trợ cả tài liệu DBObject và BSON

5. Sử dụng DBObject

Ở đây, DBObject là một phần của trình điều khiển kế thừa MongoDB, nhưng nó không được dùng trong các phiên bản MongoDB mới hơn

Hãy chèn một tài liệu DBObject với một mảng vào bộ sưu tập sinh viên

BasicDBList coursesList = new BasicDBList();
coursesList.add("Chemistry");
coursesList.add("Science");

DBObject student = new BasicDBObject().append("studentId", "STU1")
  .append("name", "Jim")
  .append("age", 13)
  .append("courses", coursesList);

dbCollection.insert(student);

Truy vấn trên chèn một tài liệu DBObject với một mảng vào tập hợp sinh viên

6. Sử dụng Tài liệu BSON

Tài liệu BSON là cách mới để truy cập tài liệu MongoDB trong Java và được xây dựng với ngăn xếp máy khách mới hơn. May mắn thay, nó cũng dễ sử dụng hơn

 

Trình điều khiển Java cung cấp một tổ chức. con trai. Lớp tài liệu để chèn một đối tượng tài liệu Bson với một mảng vào bộ sưu tập sinh viên

6. 1. Chèn một tài liệu với một mảng

Đầu tiên, hãy chèn một tài liệu có một mảng vào bộ sưu tập bằng phương thức insertOne()

List coursesList = new ArrayList<>();
coursesList.add("Science");
coursesList.add("Geography");

Document student = new Document().append("studentId", "STU2")
  .append("name", "Sam")
  .append("age", 13)
  .append("courses", coursesList);

collection.insertOne(student);

Truy vấn trên chèn một tài liệu với một mảng vào bộ sưu tập sinh viên. Điều quan trọng cần lưu ý là phương thức append(String, Object) của lớp Tài liệu chấp nhận một Đối tượng làm giá trị. Chúng ta có thể chuyển Danh sách của bất kỳ loại Đối tượng nào làm giá trị để chèn nó dưới dạng một mảng vào tài liệu

6. 2. Chèn nhiều tài liệu với một mảng

Hãy chèn nhiều tài liệu với một mảng vào bộ sưu tập bằng phương thức insertMany()

List coursesList1 = new ArrayList<>();
coursesList1.add("Chemistry");
coursesList1.add("Geography");

Document student1 = new Document().append("studentId", "STU3")
  .append("name", "Sarah")
  .append("age", 12)
  .append("courses", coursesList1);

List coursesList2 = new ArrayList<>();
coursesList2.add("Math");
coursesList2.add("History");

Document student2 = new Document().append("studentId", "STU4")
  .append("name", "Tom")
  .append("age", 13)
  .append("courses", coursesList2);

List students = new ArrayList<>();
students.add(student1);
students.add(student2);

collection.insertMany(students);

Truy vấn trên chèn nhiều tài liệu với một mảng vào bộ sưu tập sinh viên

6. 3. Chèn một mảng đối tượng

Cuối cùng, hãy chèn một loại tài liệu mảng Đối tượng vào bộ sưu tập MongoDB

Document course1 = new Document().append("name", "C1")
  .append("points", 5);

Document course2 = new Document().append("name", "C2")
  .append("points", 7);

List coursesList = new ArrayList<>();
coursesList.add(course1);
coursesList.add(course2);

Document student = new Document().append("studentId", "STU5")
  .append("name", "Sam")
  .append("age", 13)
  .append("courses", coursesList);

collection.insertOne(student);

Truy vấn trên chèn nhiều tài liệu với một mảng Đối tượng vào bộ sưu tập sinh viên. Ở đây, chúng tôi đã chèn một tài liệu có danh sách các tài liệu dưới dạng một mảng vào bộ sưu tập. Tương tự, chúng ta có thể xây dựng bất kỳ Đối tượng mảng phức tạp nào và chèn nó vào bộ sưu tập MongoDB

7. Phần kết luận

Trong bài viết này, chúng ta đã thấy nhiều cách khác nhau để chèn tài liệu có đối tượng mảng vào bộ sưu tập MongoDB. Chúng ta đã thảo luận về các trường hợp sử dụng này bằng cách sử dụng cả truy vấn MongoDB Shell cũng như triển khai mã trình điều khiển Java tương ứng

Với mã ổ đĩa Java, trước tiên chúng tôi xem xét việc triển khai bằng cách sử dụng lớp DBObject không dùng nữa. Sau đó, chúng tôi đã học cách triển khai tương tự bằng cách sử dụng lớp Tài liệu BSON mới

Làm cách nào để đặt mảng trong MongoDB?

Bạn có thể sử dụng các phương thức updateOne() hoặc updateMany() để thêm, cập nhật hoặc xóa các phần tử mảng dựa trên các tiêu chí đã chỉ định . Nên sử dụng phương thức updateMany() để cập nhật nhiều mảng trong một bộ sưu tập.

Làm cách nào để đọc mảng trong MongoDB?

Để tìm kiếm mảng đối tượng trong MongoDB, bạn có thể sử dụng toán tử $elemMatch . Toán tử này cho phép chúng ta tìm kiếm nhiều hơn một thành phần từ một đối tượng mảng.

Làm cách nào để thêm dữ liệu vào mảng trong MongoDB?

Trong MongoDB, toán tử $push được sử dụng để thêm một giá trị đã chỉ định vào một mảng. Nếu trường được đề cập không có trong tài liệu để cập nhật, toán tử $push sẽ thêm trường đó dưới dạng trường mới và bao gồm giá trị được đề cập làm thành phần của nó.

MongoDB không tốt cho việc gì?

MongoDB sẽ không phù hợp lắm với các ứng dụng cần. Giao dịch nhiều đối tượng . MongoDB chỉ hỗ trợ các giao dịch ACID cho một tài liệu duy nhất. SQL. SQL nổi tiếng và nhiều người biết cách viết các truy vấn rất phức tạp để thực hiện nhiều việc.