MongoDB để chèn vòng lặp

điểm. 1

câu trả lời được chấp nhận

thì đấy

 mongos> var characters='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
 mongos>var length=characters.length;
 mongos>for(var i = 0; i < length; i++ ) {
  db.devices.insert({
    "_id":"FX200FTQ2109BZ0"+characters.charAt(Math.floor(i)) ,
    "cloud_blueprint_id": 105969 ,
    "cloud_blueprint_name":"AWS-BP" 
    } 
  )}
  WriteResult({ "nInserted" : 1 })
  mongos> db.devices.count()
  62
  mongos> db.devices.findOne()
 {
    "_id" : "FX200FTQ2109BZ0A",
    "cloud_blueprint_id" : 105969,
     "cloud_blueprint_name" : "AWS-BP"
 }
  mongos> 

Giải thích

  1. Xác định biến "ký tự" chứa các ký tự bạn cần cho ký tự cuối cùng trong chuỗi _id của bạn
  2. Xác định một biến khác sẽ chứa độ dài của chuỗi ký tự
  3. Thêm yêu cầu insert() bên trong vòng lặp for và tạo _id dựa trên biến vòng lặp gia tăng chuyển đổi nó thành ký tự dựa trên vị trí ký tự chuỗi

Tất nhiên, bạn có thể sửa đổi và tạo các lô lớn hơn với nhiều mục nhập bên trong insertMany

đây là tùy chọn insertMany

mongos> var characters='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';var length=characters.length;var query=[],many="";for(var i = 0; i < length; i++ ) { query[i]='{"_id":"FX200FTQ2109BZ0'+characters.charAt(Math.floor(i))+'" ,"cloud_blueprint_id": 105969 ,"cloud_blueprint_name":"AWS-BP"  }';};many="["+query.join(",")+"]";print(many);db.x.insertMany(eval(many));

Thêm câu hỏi với thẻ tương tự


Máy tính xách tay làm việc của tôi sẽ không cho phép tôi cài đặt jq. Tôi đã tìm ra cách chèn tài liệu vào một bộ sưu tập khác bằng cách sử dụng bàn tay dài bên dưới

db.Workbook.find({ $or: [{type:"Slip/Binder - New Business"}, {type:"Slip/Binder - Renewal"}] }).forEach(function(workbook){
		printjson(workbook._id);
		if (workbook.businessEntity.associationId !=null){
			printjson("Found submisison ID")
			var submission=db.WorkbookView.findOne({"businessEntity.associationId":workbook.businessEntity.associationId});
			if (submission==null){ {$count:
				printjson("Inserting document")
				var newView={};
				newView._id=new ObjectId();
				newView.businessEntity=workbook.businessEntity;
				newView.createdDate=workbook.createdDate;
				newView.workbookStatus=workbook.workbookStatus;
				newView._class="net.travp.workbookviewlistener.dto.WorkbookView";
				printjson(newView);
				db.WorkbookView.insert(newView);
			}}
				else{ print("Workbook Submission already exists!")}	
		}
});

bây giờ tôi phải tìm cách thêm số đếm vào tập lệnh

Đối với tài liệu trình bao kế thừa

try {   db.products.insertMany( [      { item: "card", qty: 15 },      { item: "envelope", qty: 20 },      { item: "stamps" , qty: 30 }   ] );} catch (e) {   print (e);}
5, hãy tham khảo tài liệu cho bản phát hành Máy chủ MongoDB tương ứng

  • vỏ mongo v4. 4

  • vỏ mongo v4. 2

Chèn nhiều tài liệu vào một bộ sưu tập

Phương thức này có cú pháp như sau

db.collection.insertMany(   [  , , .. ],   {      writeConcern: ,      ordered:    })

Tham số

Loại

Sự miêu tả

try {   db.products.insertMany( [      { item: "card", qty: 15 },      { item: "envelope", qty: 20 },      { item: "stamps" , qty: 30 }   ] );} catch (e) {   print (e);}
7

tài liệu

Một mảng tài liệu để chèn vào bộ sưu tập

try {   db.products.insertMany( [      { item: "card", qty: 15 },      { item: "envelope", qty: 20 },      { item: "stamps" , qty: 30 }   ] );} catch (e) {   print (e);}
8

tài liệu

Không bắt buộc. Một tài liệu bày tỏ mối quan tâm viết. Bỏ qua để sử dụng mối quan tâm ghi mặc định

Không đặt rõ ràng mối quan tâm ghi cho hoạt động nếu chạy trong một giao dịch. Để sử dụng ghi mối quan tâm với các giao dịch, hãy xem

try {   db.products.insertMany( [      { item: "card", qty: 15 },      { item: "envelope", qty: 20 },      { item: "stamps" , qty: 30 }   ] );} catch (e) {   print (e);}
9

boolean

Không bắt buộc. Một boolean chỉ định xem phiên bản sẽ thực hiện thao tác chèn có thứ tự hay không có thứ tự. Mặc định là

{   "acknowledged" : true,   "insertedIds" : [      ObjectId("562a94d381cb9f1cd6eb0e1a"),      ObjectId("562a94d381cb9f1cd6eb0e1b"),      ObjectId("562a94d381cb9f1cd6eb0e1c")   ]}
1

trả lại. Một tài liệu chứa
  • Một boolean

    {   "acknowledged" : true,   "insertedIds" : [      ObjectId("562a94d381cb9f1cd6eb0e1a"),      ObjectId("562a94d381cb9f1cd6eb0e1b"),      ObjectId("562a94d381cb9f1cd6eb0e1c")   ]}
    2, được đặt thành
    {   "acknowledged" : true,   "insertedIds" : [      ObjectId("562a94d381cb9f1cd6eb0e1a"),      ObjectId("562a94d381cb9f1cd6eb0e1b"),      ObjectId("562a94d381cb9f1cd6eb0e1c")   ]}
    1 nếu hoạt động chạy với hoặc
    {   "acknowledged" : true,   "insertedIds" : [      ObjectId("562a94d381cb9f1cd6eb0e1a"),      ObjectId("562a94d381cb9f1cd6eb0e1b"),      ObjectId("562a94d381cb9f1cd6eb0e1c")   ]}
    4 nếu mối quan tâm ghi bị vô hiệu hóa

  • Một mảng

    {   "acknowledged" : true,   "insertedIds" : [      ObjectId("562a94d381cb9f1cd6eb0e1a"),      ObjectId("562a94d381cb9f1cd6eb0e1b"),      ObjectId("562a94d381cb9f1cd6eb0e1c")   ]}
    5, chứa các giá trị
    {   "acknowledged" : true,   "insertedIds" : [      ObjectId("562a94d381cb9f1cd6eb0e1a"),      ObjectId("562a94d381cb9f1cd6eb0e1b"),      ObjectId("562a94d381cb9f1cd6eb0e1c")   ]}
    6 cho mỗi tài liệu được chèn thành công

Hành vi cư xử

Đưa ra một mảng tài liệu, chèn từng tài liệu trong mảng vào bộ sưu tập

Thực hiện các hoạt động

Theo mặc định, tài liệu được chèn theo thứ tự

Nếu

try {   db.products.insertMany( [      { item: "card", qty: 15 },      { item: "envelope", qty: 20 },      { item: "stamps" , qty: 30 }   ] );} catch (e) {   print (e);}
9 được đặt thành false, tài liệu được chèn vào ở định dạng không có thứ tự và có thể được sắp xếp lại để tăng hiệu suất. Các ứng dụng không nên phụ thuộc vào thứ tự của phần chèn nếu sử dụng không có thứ tự

Số lượng thao tác trong mỗi nhóm không được vượt quá giá trị của cơ sở dữ liệu. Kể từ MongoDB 3. 6, giá trị này là

try {   db.products.insertMany( [      { _id: 10, item: "large box", qty: 20 },      { _id: 11, item: "small box", qty: 55 },      { _id: 12, item: "medium box", qty: 30 }   ] );} catch (e) {   print (e);}
1. Giá trị này được hiển thị trong trường

Giới hạn này ngăn các sự cố với thông báo lỗi quá khổ. Nếu một nhóm vượt quá mức này, trình điều khiển máy khách sẽ chia nhóm thành các nhóm nhỏ hơn với số lượng nhỏ hơn hoặc bằng giá trị của giới hạn. Ví dụ: với giá trị

try {   db.products.insertMany( [      { _id: 10, item: "large box", qty: 20 },      { _id: 11, item: "small box", qty: 55 },      { _id: 12, item: "medium box", qty: 30 }   ] );} catch (e) {   print (e);}
3 của
try {   db.products.insertMany( [      { _id: 10, item: "large box", qty: 20 },      { _id: 11, item: "small box", qty: 55 },      { _id: 12, item: "medium box", qty: 30 }   ] );} catch (e) {   print (e);}
1, nếu hàng đợi bao gồm
try {   db.products.insertMany( [      { _id: 10, item: "large box", qty: 20 },      { _id: 11, item: "small box", qty: 55 },      { _id: 12, item: "medium box", qty: 30 }   ] );} catch (e) {   print (e);}
5 thao tác, trình điều khiển sẽ tạo 2 nhóm, mỗi nhóm có
try {   db.products.insertMany( [      { _id: 10, item: "large box", qty: 20 },      { _id: 11, item: "small box", qty: 55 },      { _id: 12, item: "medium box", qty: 30 }   ] );} catch (e) {   print (e);}
1 thao tác

Ghi chú

Người lái xe chỉ chia nhóm thành các nhóm nhỏ hơn khi sử dụng API cấp cao. Nếu sử dụng db. runCommand() trực tiếp (ví dụ: khi viết trình điều khiển), MongoDB sẽ đưa ra lỗi khi cố thực thi một đợt ghi vượt quá giới hạn

Bắt đầu từ MongoDB 3. 6, khi báo cáo lỗi cho một đợt phát triển quá lớn, MongoDB sẽ cắt bớt tất cả các thông báo lỗi còn lại thành chuỗi trống. Hiện tại, bắt đầu khi có ít nhất 2 thông báo lỗi với tổng kích thước lớn hơn

try {   db.products.insertMany( [      { _id: 10, item: "large box", qty: 20 },      { _id: 11, item: "small box", qty: 55 },      { _id: 12, item: "medium box", qty: 30 }   ] );} catch (e) {   print (e);}
7

Kích thước và cơ chế nhóm là chi tiết hiệu suất bên trong và có thể thay đổi trong các phiên bản sau

Việc thực thi một danh sách các thao tác trên một bộ sưu tập được phân mảnh thường sẽ chậm hơn so với thực thi một danh sách vì với một danh sách có thứ tự, mỗi thao tác phải đợi thao tác trước đó kết thúc

Tạo bộ sưu tập

Nếu bộ sưu tập không tồn tại, thì hãy tạo bộ sưu tập khi ghi thành công

{ "acknowledged" : true, "insertedIds" : [ ObjectId("562a94d381cb9f1cd6eb0e1a"), ObjectId("562a94d381cb9f1cd6eb0e1b"), ObjectId("562a94d381cb9f1cd6eb0e1c") ]}6 Lĩnh vực

Nếu tài liệu không chỉ định một trường, sau đó thêm trường

{   "acknowledged" : true,   "insertedIds" : [      ObjectId("562a94d381cb9f1cd6eb0e1a"),      ObjectId("562a94d381cb9f1cd6eb0e1b"),      ObjectId("562a94d381cb9f1cd6eb0e1c")   ]}
6 và gán một trường duy nhất cho tài liệu. Hầu hết các trình điều khiển tạo một ObjectId và chèn trường
{   "acknowledged" : true,   "insertedIds" : [      ObjectId("562a94d381cb9f1cd6eb0e1a"),      ObjectId("562a94d381cb9f1cd6eb0e1b"),      ObjectId("562a94d381cb9f1cd6eb0e1c")   ]}
6, nhưng trình điều khiển sẽ tạo và điền vào trường
{   "acknowledged" : true,   "insertedIds" : [      ObjectId("562a94d381cb9f1cd6eb0e1a"),      ObjectId("562a94d381cb9f1cd6eb0e1b"),      ObjectId("562a94d381cb9f1cd6eb0e1c")   ]}
6 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

{   "acknowledged" : true,   "insertedIds" : [      ObjectId("562a94d381cb9f1cd6eb0e1a"),      ObjectId("562a94d381cb9f1cd6eb0e1b"),      ObjectId("562a94d381cb9f1cd6eb0e1c")   ]}
6, thì giá trị
{   "acknowledged" : true,   "insertedIds" : [      ObjectId("562a94d381cb9f1cd6eb0e1a"),      ObjectId("562a94d381cb9f1cd6eb0e1b"),      ObjectId("562a94d381cb9f1cd6eb0e1c")   ]}
6 phải là duy nhất trong bộ sưu tập để tránh lỗi khóa trùng lặp

khả năng giải thích

không tương thích với

Xử lý lỗi

Chèn ném một ngoại lệ

try {   db.products.insertMany( [      { _id: 13, item: "envelopes", qty: 60 },      { _id: 13, item: "stamps", qty: 110 },      { _id: 14, item: "packing tape", qty: 38 }   ] );} catch (e) {   print (e);}
2

Loại trừ các lỗi Ghi liên quan, các hoạt động được sắp xếp sẽ dừng sau một lỗi, trong khi các hoạt động không được sắp xếp tiếp tục xử lý mọi hoạt động ghi còn lại trong hàng đợi

Lỗi ghi lo ngại được hiển thị trong trường

try {   db.products.insertMany( [      { _id: 13, item: "envelopes", qty: 60 },      { _id: 13, item: "stamps", qty: 110 },      { _id: 14, item: "packing tape", qty: 38 }   ] );} catch (e) {   print (e);}
3, trong khi tất cả các lỗi khác được hiển thị trong trường
try {   db.products.insertMany( [      { _id: 13, item: "envelopes", qty: 60 },      { _id: 13, item: "stamps", qty: 110 },      { _id: 14, item: "packing tape", qty: 38 }   ] );} catch (e) {   print (e);}
4. Nếu gặp lỗi, số lượng thao tác ghi thành công sẽ được hiển thị thay vì danh sách các _id được chèn. Các thao tác có thứ tự hiển thị một lỗi gặp phải trong khi các thao tác không có thứ tự hiển thị từng lỗi trong một mảng

giao dịch

có thể được sử dụng bên trong các giao dịch nhiều tài liệu

Quan trọng

Trong hầu hết các trường hợp, giao dịch nhiều tài liệu phát sinh chi phí hiệu suất cao hơn so với ghi một tài liệu và tính khả dụng của các giao dịch nhiều tài liệu không phải là sự thay thế cho thiết kế lược đồ hiệu quả. Đối với nhiều trường hợp, sẽ tiếp tục tối ưu cho dữ liệu và trường hợp sử dụng của bạn. Nghĩa là, trong nhiều tình huống, việc lập mô hình dữ liệu của bạn một cách thích hợp sẽ giảm thiểu nhu cầu giao dịch nhiều tài liệu

Để biết các cân nhắc sử dụng giao dịch bổ sung (chẳng hạn như giới hạn thời gian chạy và giới hạn kích thước oplog), hãy xem thêm Cân nhắc sản xuất

Tạo bộ sưu tập trong giao dịch

Bắt đầu từ MongoDB 4. 4, bạn có thể tạo các bộ sưu tập và chỉ mục bên trong a nếu giao dịch là

không phải là một giao dịch ghi chéo

Cụ thể, trong MongoDB 4. 4 trở lên, nếu bạn chỉ định phần phụ trang trên bộ sưu tập không tồn tại trong giao dịch, bộ sưu tập sẽ được tạo hoàn toàn

Trong MongoDB 4. 4 trở về trước, thao tác phải được chạy trên bộ sưu tập hiện có

Mẹo

Xem thêm

Viết mối quan tâm và giao dịch

Không đặt rõ ràng mối quan tâm ghi cho hoạt động nếu chạy trong một giao dịch. Để sử dụng ghi mối quan tâm với các giao dịch, hãy xem

ví dụ

Các ví dụ sau chèn tài liệu vào bộ sưu tập

try {   db.products.insertMany( [      { _id: 13, item: "envelopes", qty: 60 },      { _id: 13, item: "stamps", qty: 110 },      { _id: 14, item: "packing tape", qty: 38 }   ] );} catch (e) {   print (e);}
6

Chèn một số tài liệu mà không chỉ định trường { "acknowledged" : true, "insertedIds" : [ ObjectId("562a94d381cb9f1cd6eb0e1a"), ObjectId("562a94d381cb9f1cd6eb0e1b"), ObjectId("562a94d381cb9f1cd6eb0e1c") ]}6

Ví dụ sau sử dụng để chèn tài liệu không chứa trường

{   "acknowledged" : true,   "insertedIds" : [      ObjectId("562a94d381cb9f1cd6eb0e1a"),      ObjectId("562a94d381cb9f1cd6eb0e1b"),      ObjectId("562a94d381cb9f1cd6eb0e1c")   ]}
6

try {   db.products.insertMany( [      { item: "card", qty: 15 },      { item: "envelope", qty: 20 },      { item: "stamps" , qty: 30 }   ] );} catch (e) {   print (e);}

Hoạt động trả về tài liệu sau

________số 8_______

Bởi vì các tài liệu không bao gồm

{   "acknowledged" : true,   "insertedIds" : [      ObjectId("562a94d381cb9f1cd6eb0e1a"),      ObjectId("562a94d381cb9f1cd6eb0e1b"),      ObjectId("562a94d381cb9f1cd6eb0e1c")   ]}
6, hãy tạo và thêm trường
{   "acknowledged" : true,   "insertedIds" : [      ObjectId("562a94d381cb9f1cd6eb0e1a"),      ObjectId("562a94d381cb9f1cd6eb0e1b"),      ObjectId("562a94d381cb9f1cd6eb0e1c")   ]}
6 cho mỗi tài liệu và gán cho nó một giá trị duy nhất

Các giá trị

BulkWriteError({   "writeErrors" : [      {         "index" : 0,         "code" : 11000,         "errmsg" : "E11000 duplicate key error collection: inventory.products index: _id_ dup key: { : 13.0 }",         "op" : {            "_id" : 13,            "item" : "stamps",            "qty" : 110         }      }   ],   "writeConcernErrors" : [ ],   "nInserted" : 1,   "nUpserted" : 0,   "nMatched" : 0,   "nModified" : 0,   "nRemoved" : 0,   "upserted" : [ ]})
4 dành riêng cho máy và thời gian khi vận hành được chạy. Như vậy, các giá trị của bạn có thể khác với các giá trị trong ví dụ

Chèn một số tài liệu chỉ định một trường { "acknowledged" : true, "insertedIds" : [ ObjectId("562a94d381cb9f1cd6eb0e1a"), ObjectId("562a94d381cb9f1cd6eb0e1b"), ObjectId("562a94d381cb9f1cd6eb0e1c") ]}6

Ví dụ/thao tác sau đây sử dụng để chèn tài liệu bao gồm trường

{   "acknowledged" : true,   "insertedIds" : [      ObjectId("562a94d381cb9f1cd6eb0e1a"),      ObjectId("562a94d381cb9f1cd6eb0e1b"),      ObjectId("562a94d381cb9f1cd6eb0e1c")   ]}
6. Giá trị của
{   "acknowledged" : true,   "insertedIds" : [      ObjectId("562a94d381cb9f1cd6eb0e1a"),      ObjectId("562a94d381cb9f1cd6eb0e1b"),      ObjectId("562a94d381cb9f1cd6eb0e1c")   ]}
6 phải là duy nhất trong bộ sưu tập để tránh lỗi khóa trùng lặp

try {   db.products.insertMany( [      { _id: 10, item: "large box", qty: 20 },      { _id: 11, item: "small box", qty: 55 },      { _id: 12, item: "medium box", qty: 30 }   ] );} catch (e) {   print (e);}

Hoạt động trả về tài liệu sau

{ "acknowledged" : true, "insertedIds" : [ 10, 11, 12 ] }

Chèn một giá trị trùng lặp cho bất kỳ khóa nào là một phần của a , chẳng hạn như

{   "acknowledged" : true,   "insertedIds" : [      ObjectId("562a94d381cb9f1cd6eb0e1a"),      ObjectId("562a94d381cb9f1cd6eb0e1b"),      ObjectId("562a94d381cb9f1cd6eb0e1c")   ]}
6, sẽ tạo ra một ngoại lệ. Những nỗ lực sau đây để chèn một tài liệu có giá trị
{   "acknowledged" : true,   "insertedIds" : [      ObjectId("562a94d381cb9f1cd6eb0e1a"),      ObjectId("562a94d381cb9f1cd6eb0e1b"),      ObjectId("562a94d381cb9f1cd6eb0e1c")   ]}
6 đã tồn tại

try {   db.products.insertMany( [      { _id: 13, item: "envelopes", qty: 60 },      { _id: 13, item: "stamps", qty: 110 },      { _id: 14, item: "packing tape", qty: 38 }   ] );} catch (e) {   print (e);}

try {   db.products.insertMany( [      { _id: 10, item: "large box", qty: 20 },      { _id: 11, item: "small box", qty: 55 },      { _id: 11, item: "medium box", qty: 30 },      { _id: 12, item: "envelope", qty: 100},      { _id: 13, item: "stamps", qty: 125 },      { _id: 13, item: "tape", qty: 20},      { _id: 14, item: "bubble wrap", qty: 30}   ], { ordered: false } );} catch (e) {   print (e);}
1 đã tồn tại, ngoại lệ sau được đưa ra

BulkWriteError({   "writeErrors" : [      {         "index" : 0,         "code" : 11000,         "errmsg" : "E11000 duplicate key error collection: inventory.products index: _id_ dup key: { : 13.0 }",         "op" : {            "_id" : 13,            "item" : "stamps",            "qty" : 110         }      }   ],   "writeConcernErrors" : [ ],   "nInserted" : 1,   "nUpserted" : 0,   "nMatched" : 0,   "nModified" : 0,   "nRemoved" : 0,   "upserted" : [ ]})

Lưu ý rằng một tài liệu đã được chèn. Tài liệu đầu tiên của

try {   db.products.insertMany( [      { _id: 10, item: "large box", qty: 20 },      { _id: 11, item: "small box", qty: 55 },      { _id: 11, item: "medium box", qty: 30 },      { _id: 12, item: "envelope", qty: 100},      { _id: 13, item: "stamps", qty: 125 },      { _id: 13, item: "tape", qty: 20},      { _id: 14, item: "bubble wrap", qty: 30}   ], { ordered: false } );} catch (e) {   print (e);}
1 sẽ chèn thành công nhưng lần chèn thứ hai sẽ không thành công. Điều này cũng sẽ ngăn các tài liệu bổ sung còn lại trong hàng đợi được chèn vào

Với

try {   db.products.insertMany( [      { item: "card", qty: 15 },      { item: "envelope", qty: 20 },      { item: "stamps" , qty: 30 }   ] );} catch (e) {   print (e);}
9 đến
{   "acknowledged" : true,   "insertedIds" : [      ObjectId("562a94d381cb9f1cd6eb0e1a"),      ObjectId("562a94d381cb9f1cd6eb0e1b"),      ObjectId("562a94d381cb9f1cd6eb0e1c")   ]}
4, thao tác chèn sẽ tiếp tục với mọi tài liệu còn lại

Chèn không có thứ tự

Những nỗ lực sau đây để chèn nhiều tài liệu với trường

{   "acknowledged" : true,   "insertedIds" : [      ObjectId("562a94d381cb9f1cd6eb0e1a"),      ObjectId("562a94d381cb9f1cd6eb0e1b"),      ObjectId("562a94d381cb9f1cd6eb0e1c")   ]}
6 và
try {   db.products.insertMany( [      { _id: 10, item: "large box", qty: 20 },      { _id: 11, item: "small box", qty: 55 },      { _id: 11, item: "medium box", qty: 30 },      { _id: 12, item: "envelope", qty: 100},      { _id: 13, item: "stamps", qty: 125 },      { _id: 13, item: "tape", qty: 20},      { _id: 14, item: "bubble wrap", qty: 30}   ], { ordered: false } );} catch (e) {   print (e);}
6. Mảng tài liệu chứa hai tài liệu có trường
{   "acknowledged" : true,   "insertedIds" : [      ObjectId("562a94d381cb9f1cd6eb0e1a"),      ObjectId("562a94d381cb9f1cd6eb0e1b"),      ObjectId("562a94d381cb9f1cd6eb0e1c")   ]}
6 trùng lặp

try {   db.products.insertMany( [      { _id: 10, item: "large box", qty: 20 },      { _id: 11, item: "small box", qty: 55 },      { _id: 11, item: "medium box", qty: 30 },      { _id: 12, item: "envelope", qty: 100},      { _id: 13, item: "stamps", qty: 125 },      { _id: 13, item: "tape", qty: 20},      { _id: 14, item: "bubble wrap", qty: 30}   ], { ordered: false } );} catch (e) {   print (e);}

Các hoạt động ném ngoại lệ sau

BulkWriteError({   "writeErrors" : [      {         "index" : 2,         "code" : 11000,         "errmsg" : "E11000 duplicate key error collection: inventory.products index: _id_ dup key: { : 11.0 }",         "op" : {            "_id" : 11,            "item" : "medium box",            "qty" : 30         }      },      {         "index" : 5,         "code" : 11000,         "errmsg" : "E11000 duplicate key error collection: inventory.products index: _id_ dup key: { : 13.0 }",         "op" : {            "_id" : 13,            "item" : "tape",            "qty" : 20         }      }   ],   "writeConcernErrors" : [ ],   "nInserted" : 5,   "nUpserted" : 0,   "nMatched" : 0,   "nModified" : 0,   "nRemoved" : 0,   "upserted" : [ ]})

Mặc dù không thể chèn tài liệu có

try {   db.products.insertMany( [      { _id: 10, item: "large box", qty: 20 },      { _id: 11, item: "small box", qty: 55 },      { _id: 11, item: "medium box", qty: 30 },      { _id: 12, item: "envelope", qty: 100},      { _id: 13, item: "stamps", qty: 125 },      { _id: 13, item: "tape", qty: 20},      { _id: 14, item: "bubble wrap", qty: 30}   ], { ordered: false } );} catch (e) {   print (e);}
8 và
try {   db.products.insertMany( [      { _id: 10, item: "large box", qty: 20 },      { _id: 11, item: "small box", qty: 55 },      { _id: 11, item: "medium box", qty: 30 },      { _id: 12, item: "envelope", qty: 100},      { _id: 13, item: "stamps", qty: 125 },      { _id: 13, item: "tape", qty: 20},      { _id: 14, item: "bubble wrap", qty: 30}   ], { ordered: false } );} catch (e) {   print (e);}
9 do các giá trị
{   "acknowledged" : true,   "insertedIds" : [      ObjectId("562a94d381cb9f1cd6eb0e1a"),      ObjectId("562a94d381cb9f1cd6eb0e1b"),      ObjectId("562a94d381cb9f1cd6eb0e1c")   ]}
6 trùng lặp, nhưng
BulkWriteError({   "writeErrors" : [      {         "index" : 2,         "code" : 11000,         "errmsg" : "E11000 duplicate key error collection: inventory.products index: _id_ dup key: { : 11.0 }",         "op" : {            "_id" : 11,            "item" : "medium box",            "qty" : 30         }      },      {         "index" : 5,         "code" : 11000,         "errmsg" : "E11000 duplicate key error collection: inventory.products index: _id_ dup key: { : 13.0 }",         "op" : {            "_id" : 13,            "item" : "tape",            "qty" : 20         }      }   ],   "writeConcernErrors" : [ ],   "nInserted" : 5,   "nUpserted" : 0,   "nMatched" : 0,   "nModified" : 0,   "nRemoved" : 0,   "upserted" : [ ]})
1 cho biết 5 tài liệu còn lại đã được chèn

Sử dụng ghi mối quan tâm

Đưa ra một bộ bản sao gồm ba thành viên, thao tác sau đây chỉ định một

BulkWriteError({   "writeErrors" : [      {         "index" : 2,         "code" : 11000,         "errmsg" : "E11000 duplicate key error collection: inventory.products index: _id_ dup key: { : 11.0 }",         "op" : {            "_id" : 11,            "item" : "medium box",            "qty" : 30         }      },      {         "index" : 5,         "code" : 11000,         "errmsg" : "E11000 duplicate key error collection: inventory.products index: _id_ dup key: { : 13.0 }",         "op" : {            "_id" : 13,            "item" : "tape",            "qty" : 20         }      }   ],   "writeConcernErrors" : [ ],   "nInserted" : 5,   "nUpserted" : 0,   "nMatched" : 0,   "nModified" : 0,   "nRemoved" : 0,   "upserted" : [ ]})
2 của
BulkWriteError({   "writeErrors" : [      {         "index" : 2,         "code" : 11000,         "errmsg" : "E11000 duplicate key error collection: inventory.products index: _id_ dup key: { : 11.0 }",         "op" : {            "_id" : 11,            "item" : "medium box",            "qty" : 30         }      },      {         "index" : 5,         "code" : 11000,         "errmsg" : "E11000 duplicate key error collection: inventory.products index: _id_ dup key: { : 13.0 }",         "op" : {            "_id" : 13,            "item" : "tape",            "qty" : 20         }      }   ],   "writeConcernErrors" : [ ],   "nInserted" : 5,   "nUpserted" : 0,   "nMatched" : 0,   "nModified" : 0,   "nRemoved" : 0,   "upserted" : [ ]})
3 và
BulkWriteError({   "writeErrors" : [      {         "index" : 2,         "code" : 11000,         "errmsg" : "E11000 duplicate key error collection: inventory.products index: _id_ dup key: { : 11.0 }",         "op" : {            "_id" : 11,            "item" : "medium box",            "qty" : 30         }      },      {         "index" : 5,         "code" : 11000,         "errmsg" : "E11000 duplicate key error collection: inventory.products index: _id_ dup key: { : 13.0 }",         "op" : {            "_id" : 13,            "item" : "tape",            "qty" : 20         }      }   ],   "writeConcernErrors" : [ ],   "nInserted" : 5,   "nUpserted" : 0,   "nMatched" : 0,   "nModified" : 0,   "nRemoved" : 0,   "upserted" : [ ]})
4 của
BulkWriteError({   "writeErrors" : [      {         "index" : 2,         "code" : 11000,         "errmsg" : "E11000 duplicate key error collection: inventory.products index: _id_ dup key: { : 11.0 }",         "op" : {            "_id" : 11,            "item" : "medium box",            "qty" : 30         }      },      {         "index" : 5,         "code" : 11000,         "errmsg" : "E11000 duplicate key error collection: inventory.products index: _id_ dup key: { : 13.0 }",         "op" : {            "_id" : 13,            "item" : "tape",            "qty" : 20         }      }   ],   "writeConcernErrors" : [ ],   "nInserted" : 5,   "nUpserted" : 0,   "nMatched" : 0,   "nModified" : 0,   "nRemoved" : 0,   "upserted" : [ ]})
5

try {   db.products.insertMany(      [         { _id: 10, item: "large box", qty: 20 },         { _id: 11, item: "small box", qty: 55 },         { _id: 12, item: "medium box", qty: 30 }      ],      { w: "majority", wtimeout: 100 }   );} catch (e) {   print (e);}

Nếu chính và ít nhất một phụ xác nhận mỗi thao tác ghi trong vòng 100 mili giây, nó sẽ trả về

try {   db.products.insertMany( [      { item: "card", qty: 15 },      { item: "envelope", qty: 20 },      { item: "stamps" , qty: 30 }   ] );} catch (e) {   print (e);}
0

Nếu tổng thời gian cần thiết cho tất cả các nút bắt buộc trong bộ bản sao để xác nhận thao tác ghi lớn hơn

BulkWriteError({   "writeErrors" : [      {         "index" : 2,         "code" : 11000,         "errmsg" : "E11000 duplicate key error collection: inventory.products index: _id_ dup key: { : 11.0 }",         "op" : {            "_id" : 11,            "item" : "medium box",            "qty" : 30         }      },      {         "index" : 5,         "code" : 11000,         "errmsg" : "E11000 duplicate key error collection: inventory.products index: _id_ dup key: { : 13.0 }",         "op" : {            "_id" : 13,            "item" : "tape",            "qty" : 20         }      }   ],   "writeConcernErrors" : [ ],   "nInserted" : 5,   "nUpserted" : 0,   "nMatched" : 0,   "nModified" : 0,   "nRemoved" : 0,   "upserted" : [ ]})
4, thì
BulkWriteError({   "writeErrors" : [      {         "index" : 2,         "code" : 11000,         "errmsg" : "E11000 duplicate key error collection: inventory.products index: _id_ dup key: { : 11.0 }",         "op" : {            "_id" : 11,            "item" : "medium box",            "qty" : 30         }      },      {         "index" : 5,         "code" : 11000,         "errmsg" : "E11000 duplicate key error collection: inventory.products index: _id_ dup key: { : 13.0 }",         "op" : {            "_id" : 13,            "item" : "tape",            "qty" : 20         }      }   ],   "writeConcernErrors" : [ ],   "nInserted" : 5,   "nUpserted" : 0,   "nMatched" : 0,   "nModified" : 0,   "nRemoved" : 0,   "upserted" : [ ]})
7 sau đây sẽ được hiển thị khi khoảng thời gian
BulkWriteError({   "writeErrors" : [      {         "index" : 2,         "code" : 11000,         "errmsg" : "E11000 duplicate key error collection: inventory.products index: _id_ dup key: { : 11.0 }",         "op" : {            "_id" : 11,            "item" : "medium box",            "qty" : 30         }      },      {         "index" : 5,         "code" : 11000,         "errmsg" : "E11000 duplicate key error collection: inventory.products index: _id_ dup key: { : 13.0 }",         "op" : {            "_id" : 13,            "item" : "tape",            "qty" : 20         }      }   ],   "writeConcernErrors" : [ ],   "nInserted" : 5,   "nUpserted" : 0,   "nMatched" : 0,   "nModified" : 0,   "nRemoved" : 0,   "upserted" : [ ]})
4 đã trôi qua

Chúng ta có thể sử dụng vòng lặp for trong MongoDB không?

Việc sử dụng vòng lặp forEach trong mongoDB rất đơn giản, nếu bạn biết javascript . Bằng cách sử dụng vòng lặp forEach, bạn có thể thao tác tài liệu trên bộ sưu tập của mình ở mọi cấp độ và ở mọi kích thước dữ liệu. bạn có thể chạy mã javascript ở cả phía máy khách của MongoDB và phía máy chủ của MongoDB.

Làm cách nào để chèn nhiều mục trong MongoDB?

Trình vỏ MongoDB cung cấp các phương thức sau để chèn tài liệu vào bộ sưu tập. .
Để chèn một tài liệu, hãy sử dụng db. thu thập. chènMột ()
Để chèn nhiều tài liệu, hãy sử dụng db. thu thập. chènMany()

Làm cách nào để chèn dữ liệu vào MongoDB?

Để chèn dữ liệu vào bộ sưu tập MongoDB, bạn cần sử dụng phương thức insert() hoặc save() của MongoDB .

Chức năng của insertMany() trong MongoDB là gì?

Phương thức insertMany() chèn một hoặc nhiều tài liệu vào bộ sưu tập . Phải mất một mảng tài liệu để chèn vào bộ sưu tập. Theo mặc định, tài liệu được chèn theo thứ tự nhất định nếu bạn muốn chèn tài liệu không theo thứ tự, sau đó đặt giá trị củaordered thành false.