MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

MongoDB BulWrite ()

Trong MongoDB, db.collection.bulkWrite() phương thức thực hiện nhiều thao tác ghi với các điều khiển cho thứ tự thực hiện.

Các hoạt động ghi hàng loạt ảnh hưởng đến một tập hợp duy nhất. Bộ sưu tập collection một phần là tên của tập hợp để thực hiện các thao tác với nó.

Thao tác viết hàng loạt

db.collection.bulkWrite() phương thức có thể được sử dụng để thực hiện các hoạt động ghi sau:

  • insertOne
  • updateOne
  • updateMany
  • replaceOne
  • deleteOne
  • deleteMany

Bất kỳ phương thức nào trong số này đều có thể được đưa vào lệnh gọi tới db.collection.bulkWrite() và bạn có thể bao gồm các phương thức khác nhau trong cùng một lệnh gọi.

Ví dụ

Đây là một ví dụ về việc sử dụng db.collection.bulkWrite() để thực hiện thao tác ghi hàng loạt đối với tập hợp có tên là pets :

Giả sử chúng ta chèn các tài liệu sau vào một bộ sưu tập có tên là pets :

db.pets.insertMany([
    { _id: 1, name: "Wag", type: "Dog", weight: 20 },
    { _id: 2, name: "Bark", type: "Dog", weight: 10 },
    { _id: 3, name: "Meow", type: "Cat" },
    { _id: 4, name: "Scratch", type: "Cat" },
    { _id: 5, name: "Bruce", type: "Bat" }
    ])

Bây giờ chúng ta có thể sử dụng db.collection.bulkWrite() để thực hiện thao tác ghi hàng loạt đối với tập hợp đó.

Ví dụ:

db.pets.bulkWrite([
    { insertOne: { "document": { "_id": 6, "name": "Bubbles", "type": "Fish" }}},
    { updateOne : {
        "filter" : { "_id" : 2 },
        "update" : { $set : { "weight" : 15 } }
    } },
    { deleteOne : { "filter" : { "_id" : 5 } } },
    { replaceOne : {
        "filter" : { "_id" : 4 },
        "replacement" : { "name" : "Bite", "type" : "Dog", "weight": 5 }
    } }
])

Kết quả:

{
	"acknowledged" : true,
	"deletedCount" : 1,
	"insertedCount" : 1,
	"matchedCount" : 2,
	"upsertedCount" : 0,
	"insertedIds" : {
		"0" : 6
	},
	"upsertedIds" : {
		
	}
}

Trong trường hợp này, chúng tôi đã chèn một tài liệu, cập nhật tài liệu khác, xóa tài liệu khác và thay thế tài liệu khác.

db.collection.bulkWrite() phương thức trả về như sau:

  • Một boolean acknowledged dưới dạng true nếu hoạt động chạy với mối quan tâm về ghi hoặc false nếu mối quan tâm viết đã bị vô hiệu hóa.
  • Số lượng cho mỗi thao tác ghi.
  • Một mảng chứa _id cho mỗi tài liệu được chèn hoặc nâng cấp thành công.

Xem kết quả

Bây giờ chúng ta hãy xem lại các tài liệu trong bộ sưu tập.

db.pets.find()

Kết quả:

{ "_id" : 1, "name" : "Wag", "type" : "Dog", "weight" : 20 }
{ "_id" : 2, "name" : "Bark", "type" : "Dog", "weight" : 15 }
{ "_id" : 3, "name" : "Meow", "type" : "Cat" }
{ "_id" : 4, "name" : "Bite", "type" : "Dog", "weight" : 5 }
{ "_id" : 6, "name" : "Bubbles", "type" : "Fish" }

Chúng tôi có thể thấy rằng tất cả các thay đổi đã được thực hiện như đã chỉ định.

ordered Tham số

Các hoạt động ghi hàng loạt có thể có thứ tự hoặc không có thứ tự. Theo mặc định, chúng được đặt hàng.

Bạn có thể chỉ định thứ tự bằng cách sử dụng tham số boolean có thứ tự. Cung cấp giá trị true đặt nó thành một danh sách các thao tác có thứ tự, đặt nó thành false làm cho nó trở thành một danh sách các hoạt động không có thứ tự.

Với một danh sách các hoạt động có thứ tự, MongoDB thực hiện các hoạt động theo thứ tự. Nếu lỗi xảy ra trong quá trình xử lý một trong các hoạt động ghi, MongoDB sẽ trả về mà không xử lý bất kỳ hoạt động ghi nào còn lại trong danh sách.

Với danh sách các hoạt động không có thứ tự, MongoDB có thể thực hiện các hoạt động song song (mặc dù điều này không được đảm bảo). Nếu lỗi xảy ra trong quá trình xử lý một trong các hoạt động ghi, MongoDB sẽ tiếp tục xử lý các hoạt động ghi còn lại trong danh sách.

Thông tin thêm

db.collection.bulkWrite() phương thức cũng chấp nhận một writeConcern đối số, mô tả mức xác nhận được yêu cầu từ MongoDB cho các hoạt động ghi.

Xem tài liệu MongoDB cho db.collection.bulkWrite() để biết thêm thông tin.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongoose - Tên bộ sưu tập Force

  2. Làm cách nào để sử dụng mongodb với electron?

  3. Cập nhật số lượng lớn các bản ghi trong một bộ sưu tập

  4. Xóa khóa / giá trị khỏi mục nhập MongoDB hiện có

  5. Ngăn Mongoose tạo thuộc tính _id cho các mục mảng tài liệu con