Rate this post

Các phương thức hàng loạt MongoDB được sử dụng để thực hiện hoạt động hàng loạt như ghi hàng loạt và xóa hàng loạt.

# 1. db.collection.initializeOrderBulkOp ()

InitializeOrderBulkOp và cung cấp trình tạo hoạt động Bulk () mới cho tập hợp. Nó xây dựng một danh sách có thứ tự các hoạt động ghi mà MongoDB chạy hàng loạt.

sau đó anh ta khởi tạo trình tạo hoạt động Bulk () trên bộ sưu tập người dùng, thêm một loạt các hoạt động ghi và thực hiện các hoạt động:

var bulk = db.users.initializeOrderedBulkOp();  
bulk.insert( { user: "John", status: "A", points: 0 } );  
bulk.insert( { user: "Peter", status: "A", points: 0 } );  
bulk.insert( { user: "Clint", status: "B", points: 0 } );  
bulk.find( { status: "D" } ).remove();  
bulk.find( { status: "B" } ).update( { $set: { comment: "Awaited" } } );  
bulk.execute(); 

# 2. db.collection.initializeUnorderedBulkOp ()

Phương thức khởi động và cung cấp một trình tạo hoạt động Bulk () mới cho bộ sưu tập. Nó xây dựng một danh sách không có thứ tự các hoạt động ghi mà MongoDB chạy hàng loạt.

Ví dụ:

Phần sau khởi tạo trình tạo hoạt động Bulk () và thêm một loạt các hoạt động chèn để thêm nhiều tài liệu:

var bulk = db.users.initializeUnorderedBulkOp();  
bulk.insert( { user: "John", status: "A", points: 0 } );  
bulk.insert( { user: "Peter", status: "A", points: 0 } );  
bulk.insert( { user: "Clint", status: "B", points: 0 } );  
bulk.execute();  

# 3. Bulk ()

Phương thức Bulk có thể được sử dụng để tạo danh sách các thao tác ghi để thực hiện hàng loạt cho một tập hợp. Để chỉnh sửa trình tạo, hãy sử dụng

db.collection.initializeOrderedBulkOp () hoặc phương thức db.collection.initializeUnorderedBulkOp ().

Trình tạo Bulk () có các phương thức sau:

Bulk.insert ()Nó có thể được sử dụng để thêm một thao tác chèn vào bên trong danh sách các thao tác.
Bulk.insert ()Nó có thể được sử dụng để thêm một thao tác chèn vào bên trong danh sách các thao tác.
Bulk.find ()Nó chỉ định điều kiện truy vấn cho thao tác xóa hoặc cập nhật.
Bulk.find.removeOne ()Nó thêm một thao tác xóa vào danh sách các thao tác cho một tài liệu.
Bulk.find.remove () Nó thêm thao tác remove vào danh sách các thao tác cho nhiều tài liệu.
Bulk.find.replaceOne () Nó thêm một thao tác thay thế tài liệu vào một số thao tác.
Bulk.find.updateOne () Nó thêm một thao tác cập nhật tài liệu đơn lẻ vào một mảng hoạt động.
Bulk.find.update () Nó thêm một thao tác cập nhật nhiều lần vào một mảng hoạt động.
Bulk.find.upsert () Nó có thể được sử dụng để chỉ định upert đúng cho một thao tác cập nhật.
Bulk.execute () Nó thực thi một loạt các hoạt động.
Bulk.getOperations () Nó cung cấp một mảng các thao tác ghi được thực thi trong đối tượng Bulk () Operating.
Bulk.tojson () Nó trả về một tài liệu JSON có số lượng hoạt động và lô trong đối tượng hoạt động Bulk ().
Bulk.toString () Nó cho kết quả Bulk.tojson () dưới dạng một chuỗi.

#4. Phương thức Bulk.execute ()

Nó chạy danh sách các hoạt động được xây dựng bởi trình tạo phương thức Bulk ().

Ví dụ:

Sau đây khởi tạo trình tạo hoạt động Bulk () trên tập hợp mục, thêm một loạt các hoạt động chèn và thực hiện các hoạt động:

var bulk = db.items.initializeUnorderedBulkOp();  
bulk.insert( { item: "abc123", status: "A", defaultQty: 500, points: 5 } );  
bulk.insert( { item: "ijk123", status: "A", defaultQty: 100, points: 10 } );  
bulk.execute( );  
The operation returns the following BulkWriteResult() object:  
BulkWriteResult({  
   "writeErrors" : [ ],  
   "writeConcernErrors" : [ ],  
   "nInserted" : 2,  
   "nUpserted" : 0,  
   "nMatched" : 0,  
   "nModified" : 0,  
   "nRemoved" : 0,  
   "upserted" : [ ]  
})  

# 5. Phương thức Bulk.find (<query>)

Nó có thể được sử dụng để chỉ định điều kiện truy vấn cho một bản cập nhật hoặc một thao tác loại bỏ. Chỉ định điều kiện truy vấn bằng cách sử dụng Bộ chọn truy vấn để chọn tài liệu cho bản cập nhật hoặc thao tác xóa. Để chỉ định tất cả các tài liệu, hãy sử dụng một tài liệu trống {}.

Bulk.find () có thể được sử dụng với các hoạt động sau của lệnh ghi:

  • Bulk.find.removeOne ()
  • Bulk.find.remove ()
  • Bulk.find.replaceOne ()
  • Bulk.find.updateOne ()
  • Bulk.find.update ()

Ví dụ:

Các ví dụ dưới đây khởi tạo trình tạo hoạt động Bulk () cho tập hợp mục và thêm thao tác xóa. Nó cũng cập nhật hoạt động vào danh sách hoạt động. Loại bỏ hoạt động và hoạt động cập nhật với phương thức Bulk.find () trợ giúp, chỉ định một điều kiện cho các hành động tương ứng của chúng:

var bulk = db.items.initializeUnorderedBulkOp();  
bulk.find( { status: "D" } ).remove();  
bulk.find( { status: "P" } ).update( { $set: { points: 0 } } )  
bulk.execute();  

# 6. Phương thức Bulk.find.remove ()

Nó thêm một hoạt động loại bỏ vào danh sách hoạt động hàng loạt. Phương thức Bulk.find () có thể được sử dụng để chỉ định điều kiện, điều kiện này xác định các tài liệu sẽ bị xóa. Bulk.find.remove () xóa tất cả các tài liệu phù hợp khỏi bộ sưu tập.

Ví dụ dưới đây khởi tạo trình tạo hoạt động Bulk () cho bộ sưu tập các mục và thêm thao tác loại bỏ. Thao tác xóa có thể được sử dụng để xóa tất cả tài liệu trong bộ sưu tập có trạng thái bằng “D”:

var bulk = db.items.initializeUnorderedBulkOp();  
bulk.find( { status: "D" } ).remove();  
bulk.execute(); 

# 7. Phương thức Bulk.find.replaceOne (<document>)

Nó có thể được sử dụng để thêm một thao tác thay thế tài liệu đơn lẻ vào danh sách thao tác hàng loạt. Sử dụng phương pháp này để chỉ định điều kiện xác định tài liệu phải được thay thế. Phương pháp này giới hạn việc thay thế đối với một tài liệu duy nhất.

Một tài liệu thay thế hoàn toàn thay thế tài liệu hiện có. Chỉ chứa các cặp trường và giá trị.

Ví dụ

Ví dụ dưới đây khởi tạo trình tạo hoạt động Bulk () cho tập hợp mục và thêm các hoạt động ReplaceOne khác nhau vào danh sách các hoạt động.

var bulk = db.items.initializeUnorderedBulkOp();  
bulk.find( { item: "abc123" } ).replaceOne( { item: "abc123", status: "P", points: 100 } );  
bulk.execute();  

# 8. Phương thức Bulk.find.update (<update>)

Nó có thể được sử dụng để thêm một thao tác cập nhật nhiều lần vào danh sách hoạt động hàng loạt. Phương pháp cập nhật các trường cụ thể cho các tệp hiện có.

Phương thức Bulk.find () có thể được sử dụng để chỉ định điều kiện xác định các tài liệu phải được cập nhật. Phương pháp cập nhật tất cả các tài liệu phù hợp.

Ví dụ:

Ví dụ sau đây khởi tạo trình tạo hoạt động Bulk () cho tập hợp mục và thêm nhiều thao tác cập nhật khác nhau vào danh sách hoạt động.

 var bulk = db.items.initializeUnorderedBulkOp();  
bulk.find( { status: "D" } ).update( { $set: { status: "I", points: "0" } } );  
bulk.find( { item: null } ).update( { $set: { item: "TBD" } } );  
bulk.execute();  

# 9. Phương thức Bulk.insert (<document>)

Nó có thể được sử dụng để thêm thao tác chèn vào danh sách thao tác hàng loạt.

Ví dụ:

Ví dụ này khởi tạo trình tạo hoạt động Bulk () cho tập hợp mục và thêm một loạt hoạt động chèn để thêm nhiều tài liệu:

var bulk = db.items.initializeUnorderedBulkOp();  
bulk.insert( { item: "abc123", defaultQty: 100, status: "A", points: 100 } );  
bulk.insert( { item: "ijk123", defaultQty: 200, status: "A", points: 200 } );  
bulk.insert( { item: "mop123", defaultQty: 0, status: "P", points: 0 } );  
bulk.execute();  

# 10. Bulk.toString ()

Nó có thể được sử dụng để trả về kết quả đầu ra dưới dạng một chuỗi, một tài liệu JSON có chứa số lượng hoạt động và lô bên trong đối tượng Bulk ().

Ví dụ

Ví dụ dưới đây khởi tạo trình tạo hoạt động Bulk () trên bộ sưu tập mục, thêm một loạt hoạt động ghi và gọi Bulk.toString () trên đối tượng trình tạo hàng loạt.

var bulk = db.items.initializeOrderedBulkOp();  
bulk.insert( { item: "abc123", status: "A", defaultQty: 500, points: 5 } );  
bulk.insert( { item: "ijk123", status: "A", defaultQty: 100, points: 10 } );  
bulk.find( { status: "D" } ).removeOne();  
bulk.toString();  

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Contact Me on Zalo
Call now