MongoDB Mảng đối tượng sử dụng Insert() với ví dụ
⚡ Tóm tắt thông minh
MongoDB Ví dụ về mảng các đối tượng sử dụng hàm insert() cho thấy cách thêm nhiều tài liệu vào một tập hợp trong một thao tác duy nhất. Nó lưu trữ một mảng các bản ghi nhân viên, nhúng các mảng vào bên trong một tài liệu và hiển thị kết quả một cách gọn gàng bằng cách sử dụng hàm print của JSON.

Phương thức insert() trong là gì? MongoDB?
Phương thức insert() trong MongoDB Phương thức `insert()` thêm một hoặc nhiều tài liệu vào một tập hợp. Tài liệu là một tập hợp các cặp trường và giá trị được lưu trữ dưới dạng BSON, một dạng nhị phân của JSON. Khi bạn truyền vào một tài liệu duy nhất, phương thức `insert()` sẽ lưu trữ bản ghi đó; khi bạn truyền vào một mảng các tài liệu, nó sẽ lưu trữ tất cả chúng trong một thao tác duy nhất, nhanh hơn so với việc chèn từng tài liệu một.
Phương thức này được thực thi trên một tập hợp cụ thể bằng cách sử dụng mẫu db.collection.insert(). Nếu tập hợp mục tiêu chưa tồn tại, MongoDB Nó được tạo tự động trong lần chèn đầu tiên. Mỗi tài liệu cũng nhận được một trường _id duy nhất nếu bạn không cung cấp, để mỗi bản ghi có thể được xác định sau này.
Mặc dù hàm insert() vẫn hoạt động, nhưng các phiên bản mới hơn... MongoDB Các phiên bản khác cung cấp insertOne() và insertMany() như những phương thức thay thế rõ ràng hơn. Các ví dụ bên dưới sử dụng insert() để thêm một mảng các tài liệu nhân viên và sau đó hiển thị kết quả ở định dạng JSON dễ đọc.
Thêm một mảng tài liệu
Lệnh “insert” cũng có thể được sử dụng để chèn nhiều tài liệu vào một bộ sưu tập cùng một lúc. Ví dụ mã dưới đây có thể được sử dụng để chèn nhiều tài liệu cùng một lúc.
Ví dụ sau đây cho thấy điều này có thể được thực hiện như thế nào,
Bước 1) Tạo ra một JavaScript biến được gọi là myEmployee để chứa mảng tài liệu
Bước 2) Thêm các tài liệu cần thiết với Tên trường và giá trị cho biến
Bước 3) Sử dụng lệnh chèn để chèn mảng tài liệu vào bộ sưu tập
var myEmployee= [ { "Employeeid" : 1, "EmployeeName" : "Smith" }, { "Employeeid" : 2, "EmployeeName" : "Mohan" }, { "Employeeid" : 3, "EmployeeName" : "Joe" }, ]; db.Employee.insert(myEmployee);
Nếu lệnh được thực hiện thành công, Đầu ra sau sẽ được hiển thị
Kết quả đầu ra cho thấy 3 tài liệu đó đã được thêm vào bộ sưu tập.
Cách chèn mảng vào trong tài liệu
Ngoài việc chèn một loạt các tài liệu riêng biệt, MongoDB Cho phép bạn lưu trữ một mảng dưới dạng một trường bên trong một tài liệu duy nhất. Điều này hữu ích khi một bản ghi tự nhiên chứa một danh sách các giá trị, chẳng hạn như một nhân viên có nhiều kỹ năng hoặc một sinh viên đăng ký nhiều khóa học. Bởi vì MongoDB Nó sử dụng mô hình tài liệu linh hoạt, mảng nằm trực tiếp bên trong đối tượng chứ không phải trong một bảng riêng biệt, giúp giữ các dữ liệu liên quan lại với nhau.
Ví dụ sau đây chèn một tài liệu nhân viên có chứa trường mảng mang tên Kỹ năng:
db.Employee.insert( { "Employeeid" : 4, "EmployeeName" : "Alan", "Skills" : [ "MongoDB", "Node.js", "Express" ] } );
Các phần của tài liệu này hoạt động như sau:
- Mã nhân viên và Tên nhân viên là các cặp trường và giá trị thông thường.
- Kỹ năng là một trường mảng chứa ba giá trị chuỗi bên trong dấu ngoặc vuông.
- Toàn bộ tài liệu, bao gồm cả mảng nhúng, được lưu trữ trong một thao tác chèn duy nhất.
Sau khi thêm bản ghi, bạn có thể xác nhận mảng nhúng bằng truy vấn tìm kiếm in kết quả dưới dạng JSON:
db.Employee.find( { "Employeeid" : 4 } ).forEach(printjson)
Kết quả hiển thị mảng Kỹ năng được lồng ghép bên trong tài liệu nhân viên. LaterBạn có thể thêm các giá trị mới vào mảng bằng toán tử `$push`, hoặc đọc một phần tử đơn lẻ theo vị trí chỉ mục của nó. Việc lưu trữ các giá trị được kết nối theo cách này giúp mỗi tài liệu độc lập, giảm nhu cầu kết nối giữa các tập hợp và giúp dữ liệu dễ đọc và dễ bảo trì hơn.
insert() so với insertOne() so với insertMany()
MongoDB Cung cấp ba phương pháp liên quan để thêm dữ liệu. Bảng dưới đây so sánh chúng để bạn có thể chọn phương pháp phù hợp:
| Phương pháp | Mục đích | Ví dụ |
|---|---|---|
| chèn() | Phương pháp cũ dùng để thêm một tài liệu hoặc một mảng tài liệu. Phương pháp này vẫn hoạt động nhưng đã bị loại bỏ trong các trình điều khiển mới hơn. | db.Employee.insert(myEmployee) |
| chènOne() | Thêm chính xác một tài liệu và trả về _id đã được thêm vào. Thích hợp cho các bản ghi đơn lẻ. | db.Employee.insertOne({ … }) |
| chènMany() | Thêm một mảng các tài liệu trong một lần gọi và trả về tất cả các _id đã được thêm vào. Thích hợp cho việc chèn hàng loạt. | db.Employee.insertMany([ { … }, { … } ]) |
Đối với các dự án mới, hãy sử dụng insertOne() và insertMany() vì chúng thể hiện rõ mục đích hơn và báo cáo lỗi tốt hơn. Phương thức insert() vẫn được giữ lại chủ yếu để đảm bảo khả năng tương thích ngược với các hướng dẫn và tập lệnh cũ hơn.
In ở định dạng JSON
JSON là một định dạng được gọi là JavaKý hiệu đối tượng tập lệnhvà chỉ là một cách để lưu trữ thông tin một cách có tổ chức, dễ đọc. Trong các ví dụ tiếp theo, chúng tôi sẽ sử dụng chức năng in JSON để xem đầu ra ở định dạng tốt hơn.
Hãy xem một ví dụ về in ở định dạng JSON
db.Employee.find().forEach(printjson)
Code Giải thích:
- Thay đổi đầu tiên là thêm hàm `forEach()` vào hàm `find()`. Điều này đảm bảo rằng nó sẽ duyệt qua từng tài liệu trong tập hợp một cách rõ ràng. Bằng cách này, bạn có nhiều quyền kiểm soát hơn đối với từng tài liệu trong tập hợp.
- Thay đổi thứ hai là đặt lệnh printjson vào câu lệnh forEach. Điều này sẽ khiến mỗi tài liệu trong bộ sưu tập được hiển thị ở định dạng JSON.
Nếu lệnh được thực hiện thành công, Đầu ra sau sẽ được hiển thị
Đầu ra:
Kết quả đầu ra cho thấy rõ ràng rằng tất cả tài liệu đều được in theo kiểu JSON.


