Chương này giới thiệu cách chèn dữ liệu tài liệu vào MongoDB bằng cách sử dụng mongo shell.

Chèn Một Tài Liệu Đơn

Phương thức db.collection.insertOne() được sử dụng để chèn một tài liệu đơn vào một bộ sưu tập.

Nếu tài liệu không chỉ định trường _id, MongoDB sẽ tự động tạo ra một ObjectId duy nhất cho trường _id.

Lưu ý: ObjectId là một công cụ tạo ID duy nhất tích hợp sẵn trong MongoDB được sử dụng để tạo ID.

Ví dụ: Chèn một tài liệu vào bộ sưu tập thành phần:

db.inventory.insertOne(
   { item: "canvas", qty: 100, tags: ["cotton"], size: { h: 28, w: 35.5, uom: "cm" } }
)

Trả về:

{
	"acknowledged" : true,
	"insertedId" : ObjectId("609bf11dfc901345cafc438a")
}

Nếu việc chèn thành công, nó sẽ trả về khóa chính. Trường insertedId là ID duy nhất được tạo tự động bởi MongoDB. Nếu bộ sưu tập inventory không tồn tại, nó sẽ được tạo tự động.

Truy vấn dữ liệu tài liệu đã chèn:

> db.inventory.find( { item: "canvas" } )
{ "_id" : ObjectId("609bf11dfc901345cafc438a"), "item" : "canvas", "qty" : 100, "tags" : [ "cotton" ], "size" : { "h" : 28, "w" : 35.5, "uom" : "cm" } }

Sử dụng phương thức find, nhập điều kiện truy vấn để tìm dữ liệu tài liệu mà item là "canvas".

Chèn Nhiều Tài Liệu

Phương thức db.collection.insertMany() có thể chèn nhiều tài liệu vào một bộ sưu tập.

Ví dụ: Chèn ba tài liệu bằng cách truyền một mảng vào phương thức insertMany:

db.inventory.insertMany([
   { item: "journal", qty: 25, tags: ["blank", "red"], size: { h: 14, w: 21, uom: "cm" } },
   { item: "mat", qty: 85, tags: ["gray"], size: { h: 27.9, w: 35.5, uom: "cm" } },
   { item: "mousepad", qty: 25, tags: ["gel", "blue"], size: { h: 19, w: 22.85, uom: "cm" } }
])

Giá trị trả về:

{
	"acknowledged" : true,
	"insertedIds" : [
		ObjectId("609bf30ffc901345cafc438b"),
		ObjectId("609bf30ffc901345cafc438c"),
		ObjectId("609bf30ffc901345cafc438d")
	]
}

Trả về các ID của ba tài liệu vừa chèn.

Hành Vi Chèn

Tạo Bộ Sưu Tập

Trong MongoDB, không cần phải tạo bộ sưu tập trước. Khi chèn dữ liệu lần đầu tiên, nếu bộ sưu tập không tồn tại, nó sẽ được tạo tự động.

Trường _id

Trong MongoDB, mỗi tài liệu được lưu trữ trong một bộ sưu tập đều có một trường _id duy nhất được sử dụng như khóa chính. Nếu tài liệu chèn thiếu trường _id, trình điều khiển MongoDB sẽ tự động tạo một ObjectId cho trường _id.

Tính Nguyên Tử

Tất cả các hoạt động ghi trong MongoDB là các hoạt động nguyên tố ở mức độ tài liệu đơn.