đ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
- 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
- Xác định một biến khác sẽ chứa độ dài của chuỗi ký tự
- 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 ứngvỏ 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ả
7try { db.products.insertMany[ [ { item: "card", qty: 15 }, { item: "envelope", qty: 20 }, { item: "stamps" , qty: 30 } ] ];} catch [e] { print [e];}
tài liệu
Một mảng tài liệu để chèn vào bộ sưu tập
8try { db.products.insertMany[ [ { item: "card", qty: 15 }, { item: "envelope", qty: 20 }, { item: "stamps" , qty: 30 } ] ];} catch [e] { print [e];}
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
9try { db.products.insertMany[ [ { item: "card", qty: 15 }, { item: "envelope", qty: 20 }, { item: "stamps" , qty: 30 } ] ];} catch [e] { print [e];}
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à
1{ "acknowledged" : true, "insertedIds" : [ ObjectId["562a94d381cb9f1cd6eb0e1a"], ObjectId["562a94d381cb9f1cd6eb0e1b"], ObjectId["562a94d381cb9f1cd6eb0e1c"] ]}
Một boolean
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{ "acknowledged" : true, "insertedIds" : [ ObjectId["562a94d381cb9f1cd6eb0e1a"], ObjectId["562a94d381cb9f1cd6eb0e1b"], ObjectId["562a94d381cb9f1cd6eb0e1c"] ]}
Một mảng
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{ "acknowledged" : true, "insertedIds" : [ ObjectId["562a94d381cb9f1cd6eb0e1a"], ObjectId["562a94d381cb9f1cd6eb0e1b"], ObjectId["562a94d381cb9f1cd6eb0e1c"] ]}
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ườngGiớ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ácGhi 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];}
7Kí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
{ "acknowledged" : true, "insertedIds" : [ ObjectId["562a94d381cb9f1cd6eb0e1a"], ObjectId["562a94d381cb9f1cd6eb0e1b"], ObjectId["562a94d381cb9f1cd6eb0e1c"] ]}
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ôngNế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ặpkhả 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];}
2Loạ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ảnggiao 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éoCụ 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];}
6Chè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
{ "acknowledged" : true, "insertedIds" : [ ObjectId["562a94d381cb9f1cd6eb0e1a"], ObjectId["562a94d381cb9f1cd6eb0e1b"], ObjectId["562a94d381cb9f1cd6eb0e1c"] ]}
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"] ]}
6try { 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ấtCá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
{ "acknowledged" : true, "insertedIds" : [ ObjectId["562a94d381cb9f1cd6eb0e1a"], ObjectId["562a94d381cb9f1cd6eb0e1b"], ObjectId["562a94d381cb9f1cd6eb0e1c"] ]}
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ặptry { 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ạitry { 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];}
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];}
1 đã tồn tại, ngoại lệ sau được đưa raBulkWriteError[{ "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àoVớ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ạiChè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ặptry { 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ènSử 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" : [ ]}]
5try { 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];}
0Nế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