2015-10-03 17 views
7

Tôi phải chèn nhiều tài liệu vào bộ sưu tập MongoDB, sử dụng trình điều khiển C# 2.0 mới. Đang sử dụng collection.InsertManyAsync (...) collection.BulkWriteAsync (...) có tạo sự khác biệt nào không? (đặc biệt là về hiệu suất).MongoDB C# trình điều khiển 2.0 InsertManyAsync vs BulkWriteAsync

Từ những gì tôi hiểu từ tài liệu MongoDB, một chèn với một mảng tài liệu phải là một thao tác hàng loạt dưới mui xe. Đúng không?

Cảm ơn sự giúp đỡ của bạn.

+0

Không chắc chắn về câu trả lời nhưng điều này có thể hữu ích: bằng mô tả API MongoDB BulkWriteAsync - Thực hiện nhiều thao tác ghi. InsertManyAsync - Chèn nhiều tài liệu. – Ofir

+1

Nếu tất cả các bạn đang làm là "chèn" hoạt động sau đó có hiệu quả không có sự khác biệt. Điểm khác biệt là "BulkWrite" có hiệu quả cho phép các hoạt động hỗn hợp như "chèn", "cập nhật" và "xóa" trong cùng một lô. Xin lưu ý rằng "dưới mui xe", cả hai đều đang sử dụng cùng một cơ chế Bulk Operations. Vì vậy, giải thích của bạn là chính xác. –

Trả lời

9

Tôi tìm thấy câu trả lời nhìn vào mã nguồn điều khiển: các InsertManyAsync sử dụng trong nội bộ các BulkWriteAsync, vì vậy sử dụng InsertManyAsync nó giống như viết:

List<BsonDocument> documents = ... 

collection.BulkWriteAsync(documents.Select(d => new InsertOneModel<BsonDocument>(d))); 

Rõ ràng, nếu tất cả các hoạt động này là Phụ trang, các InsertManyAsync nên đã sử dụng.

Các vấn đề liên quan