Hướng dẫn insertmany mongodb nodejs - insertmany mongodb nodejs

Tài liệu về nhà → node.jsNode.js

Bạn có thể chèn nhiều tài liệu bằng phương thức Bộ sưu tập.InsertMany ().

3 documents were inserted

4 lấy một loạt các tài liệu để chèn vào bộ sưu tập được chỉ định.collection.insertMany() method. The

3 documents were inserted

4 takes an array of documents to insert into the specified collection.

Bạn có thể chỉ định các tùy chọn bổ sung trong đối tượng

3 documents were inserted

5 được truyền dưới dạng tham số thứ hai của phương thức

3 documents were inserted

4. Chỉ định

3 documents were inserted

7 để ngăn chặn các tài liệu còn lại nếu việc chèn không thành công cho một tài liệu trước đó trong mảng.

Chỉ định các tham số không chính xác cho hoạt động

3 documents were inserted

4 của bạn có thể gây ra sự cố. Cố gắng chèn một trường vào một giá trị vi phạm các quy tắc chỉ mục duy nhất sẽ ném

3 documents were inserted

9.

Ghi chú

Bạn có thể sử dụng ví dụ này để kết nối với một thể hiện của MongoDB và tương tác với cơ sở dữ liệu có chứa dữ liệu mẫu. Để tìm hiểu thêm về việc kết nối với thể hiện MongoDB của bạn và tải một bộ dữ liệu mẫu, hãy xem Hướng dẫn sử dụng ví dụ.

Nếu bạn chạy ví dụ trước, bạn sẽ thấy đầu ra sau:

3 documents were inserted

Tài liệu về nhà → node.jsNode.js

Ghi chú

Nếu bạn chỉ định một phương thức gọi lại,

3 documents were inserted

4 không trả về không có gì. Nếu bạn không chỉ định một, phương thức này sẽ trả về một
db.collection.insertMany(
[ <document 1> , <document 2>, ... ],
{
writeConcern: <document>,
ordered: <boolean>
}
)
1 giải quyết cho đối tượng kết quả khi hoàn thành. Xem hướng dẫn của chúng tôi về lời hứa và cuộc gọi lại để biết thêm thông tin hoặc tài liệu API để biết thông tin về đối tượng kết quả.API documentation for information on the result object.

Bạn có thể chèn nhiều tài liệu bằng phương thức Bộ sưu tập.InsertMany ().

3 documents were inserted

4 lấy một loạt các tài liệu để chèn vào bộ sưu tập được chỉ định.collection.insertMany() method. The

3 documents were inserted

4 takes an array of documents to insert into the specified collection.

Bạn có thể chỉ định các tùy chọn bổ sung trong đối tượng

3 documents were inserted

5 được truyền dưới dạng tham số thứ hai của phương thức

3 documents were inserted

4. Chỉ định

3 documents were inserted

7 để ngăn chặn các tài liệu còn lại nếu việc chèn không thành công cho một tài liệu trước đó trong mảng.

Chỉ định các tham số không chính xác cho hoạt động

3 documents were inserted

4 của bạn có thể gây ra sự cố. Cố gắng chèn một trường vào một giá trị vi phạm các quy tắc chỉ mục duy nhất sẽ ném

3 documents were inserted

9.

Ghi chú

Nếu bạn chỉ định một phương thức gọi lại,

3 documents were inserted

4 không trả về không có gì. Nếu bạn không chỉ định một, phương thức này sẽ trả về một
db.collection.insertMany(
[ <document 1> , <document 2>, ... ],
{
writeConcern: <document>,
ordered: <boolean>
}
)
1 giải quyết cho đối tượng kết quả khi hoàn thành. Xem hướng dẫn của chúng tôi về lời hứa và cuộc gọi lại để biết thêm thông tin hoặc tài liệu API để biết thông tin về đối tượng kết quả.

Bạn có thể chèn nhiều tài liệu bằng phương thức Bộ sưu tập.InsertMany ().

3 documents were inserted

4 lấy một loạt các tài liệu để chèn vào bộ sưu tập được chỉ định.

3 documents were inserted

Tài liệu về nhà → Hướng dẫn sử dụng MongoDBMongoDB Manual

db.collection.insertMany(
[ <document 1> , <document 2>, ... ],
{
writeConcern: <document>,
ordered: <boolean>
}
)
8

Quan trọng

Phương pháp Mongosh

Trang này ghi lại một phương thức

db.collection.insertMany(
[ <document 1> , <document 2>, ... ],
{
writeConcern: <document>,
ordered: <boolean>
}
)
9. Đây không phải là tài liệu cho các lệnh cơ sở dữ liệu hoặc trình điều khiển dành riêng cho ngôn ngữ, chẳng hạn như Node.js. Để sử dụng lệnh cơ sở dữ liệu, hãy xem lệnh
try {
db.products.insertMany( [
{ item: "card", qty: 15 },
{ item: "envelope", qty: 20 },
{ item: "stamps" , qty: 30 }
] );
} catch (e) {
print (e);
}
0.
db.collection.insertMany(
[ <document 1> , <document 2>, ... ],
{
writeConcern: <document>,
ordered: <boolean>
}
)
9
method. This is not the documentation for database commands or language-specific drivers, such as Node.js. To use the database command, see the
try {
db.products.insertMany( [
{ item: "card", qty: 15 },
{ item: "envelope", qty: 20 },
{ item: "stamps" , qty: 30 }
] );
} catch (e) {
print (e);
}
0 command.

Đối với trình điều khiển API MongoDB, hãy tham khảo tài liệu trình điều khiển MongoDB dành riêng cho ngôn ngữ.MongoDB driver documentation.

Đối với tài liệu Shell Legacy

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

  • Mongo Shell v4.4

  • Mongo Shell v4.2

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

Phương thức

3 documents were inserted

4 có cú pháp sau:

3 documents were inserted

4
method has the following syntax:

db.collection.insertMany(
[ <document 1> , <document 2>, ... ],
{
writeConcern: <document>,
ordered: <boolean>
}
)

Tham số

Loại hình

Sự mô tả

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

tài liệu

Một mảng các 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);
}
4

tài liệu

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

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

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

boolean

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 viết mối quan tâm với các giao dịch, xem giao dịch và viết mối quan tâm.

Returns:Không bắt buộc. Một boolean chỉ định xem phiên bản
try {
db.products.insertMany( [
{ item: "card", qty: 15 },
{ item: "envelope", qty: 20 },
{ item: "stamps" , qty: 30 }
] );
} catch (e) {
print (e);
}
6 sẽ thực hiện một chèn được đặt hàng hoặc không đặt hàng. Mặc định là
try {
db.products.insertMany( [
{ item: "card", qty: 15 },
{ item: "envelope", qty: 20 },
{ item: "stamps" , qty: 30 }
] );
} catch (e) {
print (e);
}
7.
  • Một tài liệu chứa:

  • Một boolean

    try {
    db.products.insertMany( [
    { item: "card", qty: 15 },
    { item: "envelope", qty: 20 },
    { item: "stamps" , qty: 30 }
    ] );
    } catch (e) {
    print (e);
    }
    8, được đặt thành
    try {
    db.products.insertMany( [
    { item: "card", qty: 15 },
    { item: "envelope", qty: 20 },
    { item: "stamps" , qty: 30 }
    ] );
    } catch (e) {
    print (e);
    }
    7 nếu hoạt động chạy với Write lo ngại hoặc
    {
    "acknowledged" : true,
    "insertedIds" : [
    ObjectId("562a94d381cb9f1cd6eb0e1a"),
    ObjectId("562a94d381cb9f1cd6eb0e1b"),
    ObjectId("562a94d381cb9f1cd6eb0e1c")
    ]
    }
    0 nếu viết mối quan tâm bị vô hiệu hóa

Một mảng

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

3 documents were inserted

4
inserts each document in the array into the collection.

Đưa ra một mảng các tài liệu,

3 documents were inserted

4 chèn mỗi tài liệu vào mảng vào bộ sưu tập.

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

3 documents were inserted

4

Nếu

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

3 documents were inserted

4 chưa được đặt hàng

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

{
"acknowledged" : true,
"insertedIds" : [
ObjectId("562a94d381cb9f1cd6eb0e1a"),
ObjectId("562a94d381cb9f1cd6eb0e1b"),
ObjectId("562a94d381cb9f1cd6eb0e1c")
]
}
7. Giá trị này được hiển thị trong trường
{
"acknowledged" : true,
"insertedIds" : [
ObjectId("562a94d381cb9f1cd6eb0e1a"),
ObjectId("562a94d381cb9f1cd6eb0e1b"),
ObjectId("562a94d381cb9f1cd6eb0e1c")
]
}
8.

Giới hạn này ngăn chặn các vấn đề với các thông báo lỗi quá khổ. Nếu một nhóm vượt quá giới hạn này, trình điều khiển máy khách 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ị { "acknowledged" : true, "insertedIds" : [ ObjectId("562a94d381cb9f1cd6eb0e1a"), ObjectId("562a94d381cb9f1cd6eb0e1b"), ObjectId("562a94d381cb9f1cd6eb0e1c") ]}9 của { "acknowledged" : true, "insertedIds" : [ ObjectId("562a94d381cb9f1cd6eb0e1a"), ObjectId("562a94d381cb9f1cd6eb0e1b"), ObjectId("562a94d381cb9f1cd6eb0e1c") ]}7, nếu hàng đợi bao gồm các hoạt động 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, trình điều khiển sẽ tạo 2 nhóm, mỗi nhóm có các hoạt động { "acknowledged" : true, "insertedIds" : [ ObjectId("562a94d381cb9f1cd6eb0e1a"), ObjectId("562a94d381cb9f1cd6eb0e1b"), ObjectId("562a94d381cb9f1cd6eb0e1c") ]}7.

Ghi chú

Trình điều khiển 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 trực tiếp db.runcommand () (ví dụ: khi viết trình điều khiển), MongoDB đã ném lỗi khi cố gắng thực hiện một lô ghi vượt quá giới hạn.

Bắt đầu từ MongoDB 3.6, một khi báo cáo lỗi cho một lô duy nhất phát triển quá lớn, MongoDB đã cắt giảm tất cả các thông báo lỗi còn lại cho 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);
}
3.

Các kích thước và cơ học nhóm là chi tiết hiệu suất nội bộ và có thể thay đổi trong các phiên bản trong tương lai.

Nếu bộ sưu tập không tồn tại, thì

3 documents were inserted

4 sẽ tạo ra bộ sưu tập khi viết thành công.

3 documents were inserted

4
creates the collection on successful write.

Nếu tài liệu không chỉ định trường _ID, thì

try {
db.products.insertMany( [
{ item: "card", qty: 15 },
{ item: "envelope", qty: 20 },
{ item: "stamps" , qty: 30 }
] );
} catch (e) {
print (e);
}
6 sẽ thêm trường
{
"acknowledged" : true,
"insertedIds" : [
ObjectId("562a94d381cb9f1cd6eb0e1a"),
ObjectId("562a94d381cb9f1cd6eb0e1b"),
ObjectId("562a94d381cb9f1cd6eb0e1c")
]
}
2 và gán một
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);
}
9 duy nhất cho tài liệu. Hầu hết các trình điều khiển tạo ra một ObjectID và chèn trường
{
"acknowledged" : true,
"insertedIds" : [
ObjectId("562a94d381cb9f1cd6eb0e1a"),
ObjectId("562a94d381cb9f1cd6eb0e1b"),
ObjectId("562a94d381cb9f1cd6eb0e1c")
]
}
2, nhưng
try {
db.products.insertMany( [
{ item: "card", qty: 15 },
{ item: "envelope", qty: 20 },
{ item: "stamps" , qty: 30 }
] );
} catch (e) {
print (e);
}
6 sẽ tạo và điền vào
{
"acknowledged" : true,
"insertedIds" : [
ObjectId("562a94d381cb9f1cd6eb0e1a"),
ObjectId("562a94d381cb9f1cd6eb0e1b"),
ObjectId("562a94d381cb9f1cd6eb0e1c")
]
}
2 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")
]
}
2, giá trị
{
"acknowledged" : true,
"insertedIds" : [
ObjectId("562a94d381cb9f1cd6eb0e1a"),
ObjectId("562a94d381cb9f1cd6eb0e1b"),
ObjectId("562a94d381cb9f1cd6eb0e1c")
]
}
2 phải là duy nhất trong bộ sưu tập để tránh lỗi chính trùng lặp.

3 documents were inserted

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

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

6 is not compatible with

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

6

Chèn ném ngoại lệ

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

7.

Không bao gồm các lỗi viết mối quan tâm, các hoạt động được đặt hàng dừng sau khi có lỗi, trong khi các hoạt động không theo thứ tự tiếp tục xử lý mọi hoạt động ghi còn lại trong hàng đợi.

Viết các lỗi liên quan được hiển thị trong trường

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

8, trong khi tất cả các lỗi khác được hiển thị trong trường

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

9. Nếu gặp phải lỗi, số lượng hoạt động ghi thành công được hiển thị thay vì danh sách các _ID được chèn. Các hoạt động được đặt hàng hiển thị lỗi duy nhất gặp phải trong khi các hoạt động không theo thứ tự hiển thị từng lỗi trong một mảng.

db.collection.insertMany(
[ <document 1> , <document 2>, ... ],
{
writeConcern: <document>,
ordered: <boolean>
}
)
8 có thể được sử dụng bên trong các giao dịch đa tài liệu. can be used inside multi-document transactions.

Quan trọng

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

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

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 giao dịch đa tài liệu nếu giao dịch không phải là giao dịch ghi chéo.not a cross-shard write transaction.

Cụ thể, trong MongoDB 4.4 và lớn hơn, nếu bạn chỉ định chèn vào một bộ sưu tập không tồn tại trong một giao dịch, bộ sưu tập được tạo ngầm.

Trong MongoDB 4.4 trở lên, hoạt động phải được chạy trên một bộ sưu tập hiện có.

Mẹo

Xem thêm:

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 viết mối quan tâm với các giao dịch, xem giao dịch và viết mối quan tâm.

Các ví dụ sau đây 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);
}
1.

Ví dụ sau sử dụng

db.collection.insertMany(
[ <document 1> , <document 2>, ... ],
{
writeConcern: <document>,
ordered: <boolean>
}
)
8 để chèn các tài liệu không chứa trường
{
"acknowledged" : true,
"insertedIds" : [
ObjectId("562a94d381cb9f1cd6eb0e1a"),
ObjectId("562a94d381cb9f1cd6eb0e1b"),
ObjectId("562a94d381cb9f1cd6eb0e1c")
]
}
2:
db.collection.insertMany(
[ <document 1> , <document 2>, ... ],
{
writeConcern: <document>,
ordered: <boolean>
}
)
8
to insert documents that do not contain the
{
"acknowledged" : true,
"insertedIds" : [
ObjectId("562a94d381cb9f1cd6eb0e1a"),
ObjectId("562a94d381cb9f1cd6eb0e1b"),
ObjectId("562a94d381cb9f1cd6eb0e1c")
]
}
2 field:

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:

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

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

{
"acknowledged" : true,
"insertedIds" : [
ObjectId("562a94d381cb9f1cd6eb0e1a"),
ObjectId("562a94d381cb9f1cd6eb0e1b"),
ObjectId("562a94d381cb9f1cd6eb0e1c")
]
}
2,
try {
db.products.insertMany( [
{ item: "card", qty: 15 },
{ item: "envelope", qty: 20 },
{ item: "stamps" , qty: 30 }
] );
} catch (e) {
print (e);
}
6 tạo và thêm trường
{
"acknowledged" : true,
"insertedIds" : [
ObjectId("562a94d381cb9f1cd6eb0e1a"),
ObjectId("562a94d381cb9f1cd6eb0e1b"),
ObjectId("562a94d381cb9f1cd6eb0e1c")
]
}
2 cho mỗi tài liệu và gán cho nó một 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);
}
9 duy nhất.

Các giá trị

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);
}
8 dành riêng cho máy và thời gian khi hoạt động đượ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ụ.

Ví dụ/Hoạt động sau đây sử dụng

3 documents were inserted

4 để chèn các tài liệu bao gồm trường
{
"acknowledged" : true,
"insertedIds" : [
ObjectId("562a94d381cb9f1cd6eb0e1a"),
ObjectId("562a94d381cb9f1cd6eb0e1b"),
ObjectId("562a94d381cb9f1cd6eb0e1c")
]
}
2. Giá trị của
{
"acknowledged" : true,
"insertedIds" : [
ObjectId("562a94d381cb9f1cd6eb0e1a"),
ObjectId("562a94d381cb9f1cd6eb0e1b"),
ObjectId("562a94d381cb9f1cd6eb0e1c")
]
}
2 phải là duy nhất trong bộ sưu tập để tránh lỗi khóa trùng lặp.

3 documents were inserted

4
to insert documents that include the
{
"acknowledged" : true,
"insertedIds" : [
ObjectId("562a94d381cb9f1cd6eb0e1a"),
ObjectId("562a94d381cb9f1cd6eb0e1b"),
ObjectId("562a94d381cb9f1cd6eb0e1c")
]
}
2 field. The value of
{
"acknowledged" : true,
"insertedIds" : [
ObjectId("562a94d381cb9f1cd6eb0e1a"),
ObjectId("562a94d381cb9f1cd6eb0e1b"),
ObjectId("562a94d381cb9f1cd6eb0e1c")
]
}
2 must be unique within the collection to avoid a duplicate key error.

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 ] }

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

{
"acknowledged" : true,
"insertedIds" : [
ObjectId("562a94d381cb9f1cd6eb0e1a"),
ObjectId("562a94d381cb9f1cd6eb0e1b"),
ObjectId("562a94d381cb9f1cd6eb0e1c")
]
}
2,
try {
db.products.insertMany( [
{ item: "card", qty: 15 },
{ item: "envelope", qty: 20 },
{ item: "stamps" , qty: 30 }
] );
} catch (e) {
print (e);
}
6 tạo và thêm trường
{
"acknowledged" : true,
"insertedIds" : [
ObjectId("562a94d381cb9f1cd6eb0e1a"),
ObjectId("562a94d381cb9f1cd6eb0e1b"),
ObjectId("562a94d381cb9f1cd6eb0e1c")
]
}
2 cho mỗi tài liệu và gán cho nó một 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);
}
9 duy nhất.

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);
}

Các giá trị

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);
}
8 dành riêng cho máy và thời gian khi hoạt động đượ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ụ.

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" : [ ]
})

Ví dụ/Hoạt động sau đây sử dụng

3 documents were inserted

4 để chèn các tài liệu bao gồm trường
{
"acknowledged" : true,
"insertedIds" : [
ObjectId("562a94d381cb9f1cd6eb0e1a"),
ObjectId("562a94d381cb9f1cd6eb0e1b"),
ObjectId("562a94d381cb9f1cd6eb0e1c")
]
}
2. Giá trị của
{
"acknowledged" : true,
"insertedIds" : [
ObjectId("562a94d381cb9f1cd6eb0e1a"),
ObjectId("562a94d381cb9f1cd6eb0e1b"),
ObjectId("562a94d381cb9f1cd6eb0e1c")
]
}
2 phải là duy nhất trong bộ sưu tập để tránh lỗi khóa trùng lặp.

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 chỉ mục duy nhất, chẳng hạn như

{
"acknowledged" : true,
"insertedIds" : [
ObjectId("562a94d381cb9f1cd6eb0e1a"),
ObjectId("562a94d381cb9f1cd6eb0e1b"),
ObjectId("562a94d381cb9f1cd6eb0e1c")
]
}
2, ném một ngoại lệ. Các 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")
]
}
2 đã tồn tại:

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 đã tồn tại, ngoại lệ sau được ném:

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);
}

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

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 sẽ chèn thành công, nhưng chèn thứ hai sẽ thất bại. Đ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.

3 documents were inserted

0

Với

try {
db.products.insertMany( [
{ item: "card", qty: 15 },
{ item: "envelope", qty: 20 },
{ item: "stamps" , qty: 30 }
] );
} catch (e) {
print (e);
}
5 đến
{
"acknowledged" : true,
"insertedIds" : [
ObjectId("562a94d381cb9f1cd6eb0e1a"),
ObjectId("562a94d381cb9f1cd6eb0e1b"),
ObjectId("562a94d381cb9f1cd6eb0e1c")
]
}
0, hoạt động chèn sẽ tiếp tục với bất kỳ tài liệu còn lại nào.

Các 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")
]
}
2 và
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" : [ ]
})
9. 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")
]
}
2 trùng lặp.

3 documents were inserted

1

Hoạt động ném ngoại lệ sau:

3 documents were inserted

2

Mặc dù 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);
}
1 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);
}
2 không thể chèn do các giá trị
{
"acknowledged" : true,
"insertedIds" : [
ObjectId("562a94d381cb9f1cd6eb0e1a"),
ObjectId("562a94d381cb9f1cd6eb0e1b"),
ObjectId("562a94d381cb9f1cd6eb0e1c")
]
}
2 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);
}
4 cho thấy 5 tài liệu còn lại đã được chèn vào.

Hoạt động này trả về:

3 documents were inserted

3

Mẹo

Xem thêm: