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.