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.js → Node.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 MongoDB → MongoDB 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.
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.
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.