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

MongoDB insertMany ()

Trong MongoDB, db.collection.insertMany() phương pháp chèn nhiều tài liệu vào một bộ sưu tập.

Bộ sưu tập collection một phần là tên của bộ sưu tập để chèn tài liệu vào.

Ví dụ

Dưới đây là một ví dụ về việc sử dụng db.collection.insertMany() để chèn nhiều tài liệu vào một bộ sưu tập được gọi là pets :

db.pets.insertMany([
    { _id: 1, name: "Wag", type: "Dog" },
    { _id: 2, name: "Bark", type: "Dog" },
    { _id: 3, name: "Meow", type: "Cat" }
    ])

Kết quả:

{ "acknowledged" : true, "insertedIds" : [ 1, 2, 3 ] } 

db.collection.insertMany() phương thức trả về một tài liệu chứa:

  • 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.
  • Một mảng _id giá trị cho mỗi tài liệu được chèn thành công.

Bây giờ nếu chúng ta sử dụng db.collection.find() để nhìn vào bộ sưu tập, chúng ta sẽ thấy các tài liệu mới được thêm vào.

db.pets.find()

Kết quả:

{ "_id" : 1, "name" : "Wag", "type" : "Dog" }
{ "_id" : 2, "name" : "Bark", "type" : "Dog" }
{ "_id" : 3, "name" : "Meow", "type" : "Cat" }

Trong trường hợp này, ba tài liệu của chúng tôi là những tài liệu duy nhất trong bộ sưu tập và vì vậy chỉ những tài liệu này được trả lại.

Tuy nhiên, nếu bộ sưu tập lớn, chúng tôi có thể sử dụng ID tài liệu để thu hẹp kết quả thành chỉ những tài liệu mà chúng tôi quan tâm.

db.pets.find({_id: {$in: [1,2,3]}})

Kết quả:

{ "_id" : 1, "name" : "Wag", "type" : "Dog" }
{ "_id" : 2, "name" : "Bark", "type" : "Dog" }
{ "_id" : 3, "name" : "Meow", "type" : "Cat" }

Điều gì sẽ xảy ra nếu Bộ sưu tập không tồn tại?

Nếu bộ sưu tập không tồn tại, bộ sưu tập sẽ được tạo và các tài liệu sẽ được thêm vào bộ sưu tập đó.

Nếu bộ sưu tập đã tồn tại, thì các tài liệu chỉ cần được thêm vào nó (miễn là _id của chúng các giá trị không xung đột với bất kỳ giá trị nào hiện có).

Khi tôi tạo ví dụ này, bộ sưu tập không tồn tại và do đó, thao tác chèn đã tạo ra nó.

_id Trường

_id trường là trường định danh duy nhất trong MongoDB.

Như đã trình bày trong ví dụ trước, bạn có thể cung cấp _id của riêng mình trường trong tài liệu. Nếu bạn làm vậy, thì giá trị của nó phải là duy nhất trong bộ sưu tập. Điều này là do _id của bạn trường sẽ được sử dụng làm mã định danh duy nhất của tài liệu.

Dưới đây là một ví dụ về cách chèn tài liệu mà không cần cung cấp _id các lĩnh vực.

db.pets.insertMany([
    { name: "Bruce", type: "Bat" },
    { name: "Sweetie", type: "Honey Badger" }
    ])

Kết quả:

{
	"acknowledged" : true,
	"insertedIds" : [
		ObjectId("5fe30ef737b49e0faf1af215"),
		ObjectId("5fe30ef737b49e0faf1af216")
	]
}

_id giá trị của các tài liệu được trả về. Chúng tôi có thể sử dụng những thứ này để tìm kiếm bộ sưu tập chỉ những tài liệu mà chúng tôi đã chèn vào.

Nhưng trong trường hợp này, hãy xem toàn bộ bộ sưu tập.

db.pets.find()

Kết quả:

{ "_id" : 1, "name" : "Wag", "type" : "Dog" }
{ "_id" : 2, "name" : "Bark", "type" : "Dog" }
{ "_id" : 3, "name" : "Meow", "type" : "Cat" }
{ "_id" : ObjectId("5fe30ef737b49e0faf1af215"), "name" : "Bruce", "type" : "Bat" }
{ "_id" : ObjectId("5fe30ef737b49e0faf1af216"), "name" : "Sweetie", "type" : "Honey Badger" }

Chúng tôi có thể thấy rằng hai tài liệu mới của chúng tôi đã được đưa vào bộ sưu tập.

ordered Tham số

db.collection.insertMany() phương thức cũng chấp nhận một ordered tham số. Đây là một tham số boolean với giá trị mặc định là true .

ordered tham số chỉ định xem thao tác chèn nên được sắp xếp theo thứ tự hay không có thứ tự.

Nếu ordered được đặt thành false , tài liệu được chèn ở định dạng không có thứ tự và có thể được sắp xếp lại bởi mongod để tăng hiệu suất.

Với các phần chèn có thứ tự, nếu lỗi xảy ra trong quá trình chèn một trong các tài liệu, MongoDB trả về lỗi mà không xử lý các tài liệu còn lại trong mảng.

Với các chèn không có thứ tự, nếu lỗi xảy ra trong quá trình chèn một trong các tài liệu, MongoDB sẽ tiếp tục chèn các tài liệu còn lại trong mảng.

Thông tin thêm

db.collection.insertMany() 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.insertMany() để biết thêm thông tin.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Cuộc chiến của các cơ sở dữ liệu NoSQL - So sánh MongoDB và CouchDB

  2. Hiệu suất MongoDB:Chạy các hoạt động giảm thiểu bản đồ MongoDB trên các thiết bị thứ hai

  3. Cách tốt nhất để thực hiện tìm kiếm toàn văn trong MongoDB và Mongoose

  4. Làm cách nào để trích xuất ngày đã tạo từ Mongo ObjectID

  5. Hỗ trợ giao dịch trong MongoDB