Rate this post

Trong MongoDB, phương thức db.collection.insert () được sử dụng để thêm hoặc chèn Document mới vào Collection trong cơ sở dữ liệu của bạn.

Các bài viết liên quan:

Upsert

Ngoài ra còn có hai phương thức “phương thức db.collection.update ()” và phương thức “db.collection.save ()” được sử dụng cho cùng một mục đích. Các phương pháp này thêm các Document mới thông qua một thao tác được gọi là upert.

Nâng cấp là một thao tác thực hiện cập nhật Document hiện có hoặc chèn Document mới nếu Document cần sửa đổi không tồn tại.

Cú pháp

> db.COLLECTION_NAME.insert (Document)

Hãy lấy một ví dụ để minh họa cách chèn một Document vào một Collection. Trong ví dụ này, chúng tôi chèn một Document vào một Collection có tên là testDB. Thao tác này sẽ tự động tạo một Collection nếu Collection hiện không tồn tại.

Ví dụ

db.testDB.insert(  
   {  
     course: "java",  
     details: {  
        duration: "6 months",  
        Trainer: "Sonoo jaiswal"  
     },  
     Batch: [ { size: "Small", qty: 15 }, { size: "Medium", qty: 25 } ],  
     category: "Programming language"  
   }  
)  

Sau khi chèn thành công Document, hoạt động sẽ trả về một đối tượng WriteResult với trạng thái của nó.

Đầu ra:

WriteResult ({"nInserted": 1})

Ở đây trường nInserted chỉ định số lượng Document được chèn vào. Nếu xảy ra lỗi thì WriteResult sẽ chỉ định thông tin lỗi.

Kiểm tra các Document đã chèn

Nếu chèn thành công, bạn có thể xem Document được chèn bằng truy vấn sau.

> db.testDB.find ()

Đổi lại bạn sẽ nhận được Document đã chèn.

Đầu ra:

{ "_id" : ObjectId("56482d3427e53e2dbc93cek8"), "course" : "java", "details" : 
{ "duration" : "6 months", "Trainer" : "Sonoo jaiswal" }, "Batch" : 
[ {"size" : "Small", "qty" : 15 }, { "size" : "Medium", "qty" : 25 } ],
 "category" : "Programming language" }

Lưu ý: Ở đây, giá trị ObjectId được tạo bởi chính MongoDB. Nó có thể khác với một trong những hiển thị.

MongoDB chèn nhiều Document

Nếu bạn muốn chèn nhiều Document trong một Collection, bạn phải chuyển một mảng Document tới phương thức db.collection.insert ().

Tạo một mảng Document

Xác định một biến có tên là Allcourses chứa một mảng Document để chèn.

var Allcourses =  
    [  
      {  
        Course: "Java",  
        details: { Duration: "6 months", Trainer: "Sonoo Jaiswal" },  
        Batch: [ { size: "Medium", qty: 25 } ],  
        category: "Programming Language"  
      },  
      {  
        Course: ".Net",  
        details: { Duration: "6 months", Trainer: "Prashant Verma" },  
        Batch: [ { size: "Small", qty: 5 }, { size: "Medium", qty: 10 }, ],  
        category: "Programming Language"  
      },  
      {  
        Course: "Web Designing",  
        details: { Duration: "3 months", Trainer: "Rashmi Desai" },  
        Batch: [ { size: "Small", qty: 5 }, { size: "Large", qty: 10 } ],  
        category: "Programming Language"  
      }  
    ];  

Chèn các Document

Chuyển mảng Allcourses này sang phương thức db.collection.insert () để thực hiện chèn hàng loạt.

> db.testDB.insert( Allcourses );  

Sau khi chèn thành công các Document, điều này sẽ trả về một đối tượng BulkWriteResult với trạng thái.

BulkWriteResult({
   "writeErrors" : [ ],
   "writeConcernErrors" : [ ],
   "nInserted" : 3,
   "nUpserted" : 0,
   "nMatched" : 0,
   "nModified" : 0,
   "nRemoved" : 0,
   "upserted" : [ ]
})

Lưu ý: Ở đây trường nInserted chỉ định số lượng Document được chèn. Trong trường hợp có bất kỳ lỗi nào trong quá trình hoạt động, BulkWriteResult sẽ chỉ định lỗi đó.

Bạn có thể kiểm tra các Document đã chèn bằng cách sử dụng truy vấn sau:

> db.testDB.find ()

Chèn nhiều Document với Bulk

Trong phiên bản mới nhất của MongoDB (MongoDB 2.6) cung cấp một API Bulk () có thể được sử dụng để thực hiện nhiều thao tác ghi hàng loạt.

Bạn nên làm theo các bước sau để chèn một nhóm Document vào Collection MongoDB.

Khởi tạo trình tạo hoạt động hàng loạt

Đầu tiên hãy khởi tạo một trình tạo hoạt động hàng loạt cho testDB .

var Bulk = db.testDB .initializeUnorderedBulkOp ();

Thao tác này trả về một trình tạo các hoạt động unorder để duy trì một danh sách các hoạt động cần thực hiện.

Thêm các thao tác chèn vào đối tượng số lượng lớn

bulk.insert(  
   {  
     course: "java",  
     details: {  
        duration: "6 months",  
        Trainer: "Sonoo jaiswal"  
     },  
     Batch: [ { size: "Small", qty: 15 }, { size: "Medium", qty: 25 } ],  
     category: "Programming language"  
   }  
);  

Thực hiện hoạt động hàng loạt

Gọi phương thức execute () trên đối tượng số lượng lớn để thực thi các hoạt động trong danh sách.

bulk.execute();  

Sau khi chèn thành công các Document, phương thức này sẽ trả về một đối tượng BulkWriteResult với trạng thái của nó.

BulkWriteResult({
   "writeErrors" : [ ],
   "writeConcernErrors" : [ ],
   "nInserted" : 1,
   "nUpserted" : 0,
   "nMatched" : 0,
   "nModified" : 0,
   "nRemoved" : 0,
   "upserted" : [ ]
})

Đây là thông số trường Inserted số lượng Document được chèn vào. Trong trường hợp có bất kỳ lỗi nào trong quá trình hoạt động, BulkWriteResult sẽ chỉ định lỗi đó.

Leave a Reply

Call now
%d bloggers like this: