Trong quá trình chèn, mongod sẽ tạo trường _id và gán cho nó một giá trị ObjectId duy nhất, như được xác minh bởi tài liệu được chèn. Để xem tài liệu đã chèn, hãy xem câu lệnh sau
> db.invoice.find(); { "_id" : ObjectId("567554d2f61afaaed2aae48f"), "inv_no" : "I00001", "inv_date" : "10/10/2012" }Thí dụ. Chèn một tài liệu chỉ định an_idField
Trong ví dụ sau, tài liệu được chuyển đến phương thức theinsert() bao gồm the_idfield. Giá trị của_idphải là duy nhất trong bộ sưu tập để tránh lỗi khóa trùng lặp
db.invoice.insert( { _id: 901,inv_no: "I00001", inv_date: "10/10/2012" } );đầu ra
> db.invoice.insert( { _id: 901,inv_no: "I00001", inv_date: "10/10/2012" } ); WriteResult({ "nInserted" : 1 })Thao tác chèn tài liệu sau vào bộ sưu tập sản phẩm
{ "_id" : 901, "inv_no" : "I00001", "inv_date" : "10/10/2012" }Thí dụ. Chèn nhiều tài liệu
Ví dụ sau thực hiện thao tác chèn hàng loạt ba tài liệu bằng cách chuyển một mảng tài liệu tới phương thức insert(). Các tài liệu trong mảng không nhất thiết phải có các trường giống nhau. Chẳng hạn, tài liệu đầu tiên trong mảng có an_idfield và aunitfield. Nhưng tài liệu thứ hai và thứ ba không chứa an_idfield, mongod sẽ tạo the_idfield cho tài liệu thứ hai và thứ ba trong quá trình chèn
db.orders.insert( [ { _id: 15, ord_no: 2001, qty: 200, unit: "doz" }, { ord_no: 2005, qty: 320 }, { ord_no: 2008, qty: 250, rate:85 } ] );đầu ra
BulkWriteResult({ "writeErrors" : [ ], "writeConcernErrors" : [ ], "nInserted" : 3, "nUpserted" : 0, "nMatched" : 0, "nModified" : 0, "nRemoved" : 0, "upserted" : [ ] })Các hoạt động chèn ba tài liệu sau đây
{ "_id" : 15, "ord_no" : 2001, "qty" : 200, "unit" : "doz" } { "_id" : ObjectId("56755896f61afaaed2aae490"), "ord_no" : 2005, "qty" : 320 } { "_id" : ObjectId("56755896f61afaaed2aae491"), "ord_no" : 2008, "qty" : 250, "rate" : 85 }Lấy dữ liệu nhà hàng từ đây
Cư xử
Viết an toàn
Phương thức insert() sử dụng lệnh chèn, sử dụng mối quan tâm ghi mặc định. Để chỉ định mối quan tâm ghi khác, hãy bao gồm mối quan tâm ghi trong tham số tùy chọn
Tạo bộ sưu tập
Nếu bộ sưu tập không tồn tại thì phương thức insert() sẽ tạo bộ sưu tập
Trường _id
Nếu tài liệu không chỉ định trường _id thì MongoDB sẽ thêm trường _id và gán một ObjectId duy nhất cho tài liệu trước khi chèn. Hầu hết các trình điều khiển tạo một ObjectId và chèn trường _id, nhưng mongod sẽ tạo và điền _id nếu trình điều khiển hoặc ứng dụng không
Nếu tài liệu chứa trường _id, thì giá trị _id phải là duy nhất trong bộ sưu tập để tránh lỗi khóa trùng lặp
Tóm lược. trong hướng dẫn này, bạn sẽ học cách sử dụng phương pháp MongoDB
mongosh bookdb
0 để chèn một tài liệu vào một bộ sưu tậpGiới thiệu về phương thức insertOne() của MongoDB
Phương pháp
mongosh bookdb
0 cho phép bạn chèn một tài liệu vào một bộ sưu tậpPhương thức
mongosh bookdb
0 có cú pháp như saudb.collection.insertOne( <document>, { writeConcern: <document>} )
Code language: CSS (css)Phương thức
mongosh bookdb
0 chấp nhận hai đối sốmongosh bookdb
4 là một tài liệu mà bạn muốn chèn vàomongosh bookdb
5. Đối sốmongosh bookdb
4 là bắt buộcmongosh bookdb
7 là một đối số tùy chọn mô tả mức độ xác nhận được yêu cầu từ MongoDB cho thao tác chèn vào máy chủ MongoDB độc lập hoặc tới các cụm được chia sẻ. Chúng ta sẽ thảo luận về writeConcern trong một hướng dẫn khác
Phương thức
mongosh bookdb
0 trả về một tài liệu chứa các trường saumongosh bookdb
9 là một giá trị boolean. Nó được đặt thành true nếu thao tác chèn được thực hiện với mối quan tâm ghi hoặc sai nếu mối quan tâm ghi bị tắtdb.books.insertOne({ title: 'MongoDB insertOne', isbn: '0-7617-6154-3' });
Code language: CSS (css)0 lưu trữ giá trị của trườngdb.books.insertOne({ title: 'MongoDB insertOne', isbn: '0-7617-6154-3' });
Code language: CSS (css)1 của tài liệu được chèn
Lưu ý rằng nếu
mongosh bookdb
5 không tồn tại, phương thứcmongosh bookdb
0 cũng sẽ tạo bộ sưu tập và chènmongosh bookdb
4 vào đóNếu bạn không chỉ định trường
db.books.insertOne({ title: 'MongoDB insertOne', isbn: '0-7617-6154-3' });
Code language: CSS (css)1 trong tài liệu, MongoDB sẽ thêm trườngdb.books.insertOne({ title: 'MongoDB insertOne', isbn: '0-7617-6154-3' });
Code language: CSS (css)1 và tạo mộtdb.books.insertOne({ title: 'MongoDB insertOne', isbn: '0-7617-6154-3' });
Code language: CSS (css)7 duy nhất cho trường đó trước khi chènNếu bạn chỉ định rõ ràng một giá trị cho trường
db.books.insertOne({ title: 'MongoDB insertOne', isbn: '0-7617-6154-3' });
Code language: CSS (css)1, bạn cần đảm bảo rằng giá trị đó là duy nhất trong bộ sưu tập. Nếu không, bạn sẽ gặp lỗi khóa trùng lặpĐể chèn nhiều tài liệu vào một bộ sưu tập, bạn sử dụng phương thức
db.books.insertOne({ title: 'MongoDB insertOne', isbn: '0-7617-6154-3' });
Code language: CSS (css)9Ví dụ về phương thức insertOne() của MongoDB
Đầu tiên, bạn cần khởi chạy mongo shell và kết nối nó với cơ sở dữ liệu
{ "acknowledged" : true, "insertedId" : ObjectId("5f31cf00902f22de3464ddc4") }
Code language: JSON / JSON with Comments (json)0mongosh bookdb
1) Ví dụ về chèn tài liệu không có trường _id
Ví dụ sau sử dụng phương thức
mongosh bookdb
0 để chèn một tài liệu mới vào bộ sưu tập sáchdb.books.insertOne({ title: 'MongoDB insertOne', isbn: '0-7617-6154-3' });
Code language: CSS (css)đầu ra
{ "acknowledged" : true, "insertedId" : ObjectId("5f31cf00902f22de3464ddc4") }
Code language: JSON / JSON with Comments (json)Trong ví dụ này, chúng tôi đã chuyển một tài liệu tới phương thức
mongosh bookdb
0 mà không chỉ định trườngdb.books.insertOne({ title: 'MongoDB insertOne', isbn: '0-7617-6154-3' });
Code language: CSS (css)1. Do đó, MongoDB đã tự động thêm trườngdb.books.insertOne({ title: 'MongoDB insertOne', isbn: '0-7617-6154-3' });
Code language: CSS (css)1 và gán cho nó một giá trị duy nhất làdb.books.insertOne({ title: 'MongoDB insertOne', isbn: '0-7617-6154-3' });
Code language: CSS (css)7Lưu ý rằng bạn sẽ thấy một giá trị
db.books.insertOne({ title: 'MongoDB insertOne', isbn: '0-7617-6154-3' });
Code language: CSS (css)7 khác với ví dụ này vì các giá trịdb.books.insertOne({ title: 'MongoDB insertOne', isbn: '0-7617-6154-3' });
Code language: CSS (css)7 dành riêng cho máy và thời gian khi phương thứcmongosh bookdb
0 thực thiĐể chọn tài liệu mà bạn đã chèn, bạn có thể sử dụng phương thức
{ "acknowledged" : true, "insertedId" : ObjectId("5f31cf00902f22de3464ddc4") }
Code language: JSON / JSON with Comments (json)9 như thế nàydb.books.find()
Code language: CSS (css)đầu ra
[ { _id: ObjectId("621489fcf514a446bf1a98ea"), title: 'MongoDB insertOne', isbn: '0-7617-6154-3' } ]
Code language: JavaScript (javascript)2) Ví dụ về chèn tài liệu có trường _id
Ví dụ sau sử dụng phương thức
mongosh bookdb
0 để chèn một tài liệu có trườngdb.books.insertOne({ title: 'MongoDB insertOne', isbn: '0-7617-6154-3' });
Code language: CSS (css)1 vào bộ sưu tậpdb.books.find()
Code language: CSS (css)2db.books.insertOne({ _id: 1, title: "Mastering Big Data", isbn: "0-9270-4986-4" });
Code language: CSS (css)đầu ra
{ "acknowledged" : true, "insertedId" : 1 }
Code language: JSON / JSON with Comments (json)Ví dụ sau cố gắng chèn một tài liệu khác có trường
db.books.insertOne({ title: 'MongoDB insertOne', isbn: '0-7617-6154-3' });
Code language: CSS (css)1 đã tồn tại vào bộ sưu tậpdb.books.find()
Code language: CSS (css)2