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.

  • 📥 Chèn số lượng lớn: Phương thức `insert()` thêm một mảng các tài liệu vào một tập hợp trong một thao tác duy nhất và hiệu quả.
  • 🧾 Mẫu tài liệu: Mỗi tài liệu là một tập hợp các cặp trường và giá trị, và MongoDB Tự động thêm một _id duy nhất.
  • 🗂️ Mảng nhúng: Mảng cũng có thể tồn tại như một trường bên trong một tài liệu, giữ nguyên như vậy.ping các giá trị liên quan với nhau.
  • 🔁 Phương pháp hiện đại: insertOne() và insertMany() là các phương thức thay thế hiện tại, rõ ràng hơn cho phương thức insert() cũ.
  • 🖨️ Readable Đầu ra: Lệnh forEach(printjson) in ra mọi tài liệu ở định dạng JSON gọn gàng, dễ đọc.

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ị

MongoDB Mảng đối tượng sử dụng Insert()

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ênTê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:

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

In ở định dạng JSON

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.

Câu Hỏi Thường Gặp

Đúng vậy. Việc truyền một mảng các tài liệu vào hàm insert() sẽ thêm tất cả chúng vào cùng một lúc. Việc chèn hàng loạt này nhanh hơn so với việc gọi hàm insert() riêng lẻ cho từng tài liệu, mặc dù hiện nay insertMany() là phương pháp được ưu tiên hơn.

Đúng vậy. Nếu tài liệu không bao gồm trường _id, MongoDB Tự động tạo một ObjectId duy nhất cho bản ghi trong quá trình chèn, do đó mọi bản ghi đã lưu trữ đều có thể được xác định và truy xuất sau này.

Theo mặc định, MongoDB Thực hiện thao tác chèn có thứ tự. Nó thêm các tài liệu theo thứ tự đã cho và dừng lại ở lỗi đầu tiên, bỏ qua các tài liệu còn lại. Đặt `ordered` thành `false` sẽ tiếp tục bỏ qua các lỗi.

Đúng vậy. Các công cụ AI có thể chuyển đổi mô tả dữ liệu bằng ngôn ngữ thông thường thành các câu lệnh insertOne() hoặc insertMany(), bao gồm cả mảng nhúng. Luôn luôn xem xét kỹ các trường và kiểu dữ liệu được tạo ra trước khi chạy chúng trên cơ sở dữ liệu.

Dựa trên các mẫu truy vấn của bạn, AI có thể đề xuất liệu nên nhúng mảng vào bên trong tài liệu hay tham chiếu đến các tập hợp riêng biệt. Điều này giúp người mới bắt đầu mô hình hóa dữ liệu một cách hiệu quả đồng thời tránh trùng lặp không cần thiết hoặc lồng ghép quá sâu.

Tóm tắt bài viết này với: