Làm cách nào để chèn bản ghi trong MongoDB?

Trong MongoDB, db. thu thập. phương thức insert() được sử dụng để thêm hoặc chèn tài liệu mới vào bộ sưu tập trong cơ sở dữ liệu của bạn

Upsert

Ngoài ra còn có hai phương pháp "db. thu thập. update()" và "db. thu thập. save()" được sử dụng cho cùng một mục đích. Các phương pháp này thêm tài liệu mới thông qua một hoạt động được gọi là upert

Upsert là một thao tác thực hiện cập nhật tài liệu hiện có hoặc chèn tài liệu mới nếu tài liệu cần sửa đổi không tồn tại

cú pháp

Hãy lấy một ví dụ để minh họa cách chèn một tài liệu vào một bộ sưu tập. Trong ví dụ này, chúng tôi chèn một tài liệu vào một bộ sưu tập có tên là javatpoint. Thao tác này sẽ tự động tạo bộ sưu tập nếu bộ sưu tập hiện không tồn tại

Thí dụ

Sau khi chèn tài liệu thành công, thao tác sẽ trả về một đối tượng WriteResult với trạng thái của nó

đầu ra

WriteResult({ "nInserted" : 1 })

Ở đây, trường nInserted chỉ định số lượng tài liệu được chèn vào. Trong trường hợp có bất kỳ lỗi nào trong quá trình hoạt động, BulkWriteResult sẽ chỉ định lỗi đó

Trong quá trình chèn, mongod sẽ tạo trường _id và gán cho nó một giá trị ObjectId duy nhất, như được xác minh bởi tài liệu được chèn. Để xem tài liệu đã chèn, hãy xem câu lệnh sau


> db.invoice.find();
{ "_id" : ObjectId("567554d2f61afaaed2aae48f"), "inv_no" : "I00001", "inv_date" : "10/10/2012" }

Thí dụ. Chèn một tài liệu chỉ định an_idField

Trong ví dụ sau, tài liệu được chuyển đến phương thức theinsert() bao gồm the_idfield. Giá trị của_idphải là duy nhất trong bộ sưu tập để tránh lỗi khóa trùng lặp

db.invoice.insert( { _id: 901,inv_no: "I00001", inv_date: "10/10/2012" } );

đầu ra

> db.invoice.insert( { _id: 901,inv_no: "I00001", inv_date: "10/10/2012" } );
WriteResult({ "nInserted" : 1 })

Thao tác chèn tài liệu sau vào bộ sưu tập sản phẩm

{ "_id" : 901, "inv_no" : "I00001", "inv_date" : "10/10/2012" }

Thí dụ. Chèn nhiều tài liệu

Ví dụ sau thực hiện thao tác chèn hàng loạt ba tài liệu bằng cách chuyển một mảng tài liệu tới phương thức insert(). Các tài liệu trong mảng không nhất thiết phải có các trường giống nhau. Chẳng hạn, tài liệu đầu tiên trong mảng có an_idfield và aunitfield. Nhưng tài liệu thứ hai và thứ ba không chứa an_idfield, mongod sẽ tạo the_idfield cho tài liệu thứ hai và thứ ba trong quá trình chèn

db.orders.insert(
   [
     { _id: 15, ord_no: 2001, qty: 200, unit: "doz" },
     { ord_no: 2005, qty: 320 },
     { ord_no: 2008, qty: 250, rate:85 }
   ]
);

đầu ra

BulkWriteResult({
        "writeErrors" : [ ],
        "writeConcernErrors" : [ ],
        "nInserted" : 3,
        "nUpserted" : 0,
        "nMatched" : 0,
        "nModified" : 0,
        "nRemoved" : 0,
        "upserted" : [ ]
})

Các hoạt động chèn ba tài liệu sau đây

{ "_id" : 15, "ord_no" : 2001, "qty" : 200, "unit" : "doz" }
{ "_id" : ObjectId("56755896f61afaaed2aae490"), "ord_no" : 2005, "qty" : 320 }
{ "_id" : ObjectId("56755896f61afaaed2aae491"), "ord_no" : 2008, "qty" : 250, "rate" : 85 }

Lấy dữ liệu nhà hàng từ đây

Cư xử

Viết an toàn

Phương thức insert() sử dụng lệnh chèn, sử dụng mối quan tâm ghi mặc định. Để chỉ định mối quan tâm ghi khác, hãy bao gồm mối quan tâm ghi trong tham số tùy chọn

Tạo bộ sưu tập

Nếu bộ sưu tập không tồn tại thì phương thức insert() sẽ tạo bộ sưu tập

Trường _id

Nếu tài liệu không chỉ định trường _id thì MongoDB sẽ thêm trường _id và gán một ObjectId duy nhất cho tài liệu trước khi chèn. Hầu hết các trình điều khiển tạo một ObjectId và chèn trường _id, nhưng mongod sẽ tạo và điền _id 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 _id, thì giá trị _id phải là duy nhất trong bộ sưu tập để tránh lỗi khóa trùng lặp

Để chèn một bản ghi hoặc tài liệu như nó được gọi trong MongoDB, vào một bộ sưu tập, chúng tôi sử dụng phương thức insertOne()

Một tài liệu trong MongoDB giống như một bản ghi trong MySQL

Tham số đầu tiên của phương thức insertOne() là một đối tượng chứa (các) tên và (các) giá trị của từng trường trong tài liệu mà bạn muốn chèn

Nó cũng có chức năng gọi lại nơi bạn có thể làm việc với bất kỳ lỗi nào hoặc kết quả của việc chèn

Thí dụ

Chèn tài liệu vào bộ sưu tập "khách hàng"

var MongoClient = yêu cầu('mongodb'). MongoClient;
var url = "mongodb. //máy chủ cục bộ. 27017/";

MongoClient. kết nối (url, chức năng (err, db) {
nếu (err) ném err;
var dbo = db. db("mydb");
var myobj = { tên. "Công ty Inc", địa chỉ. "Quốc lộ 37" };
dbo. bộ sưu tập ("khách hàng"). insertOne(myobj, function(err, res) {
nếu (err) ném err;
bảng điều khiển. log("Đã chèn 1 tài liệu");
db. Thoát();
});
});

Chạy ví dụ »

Lưu mã ở trên vào tệp có tên "demo_mongodb_insert. js" và chạy tệp

Chạy "demo_mongodb_insert. js"

C. \Users\Tên của bạn>nút demo_mongodb_insert. js

Cái nào sẽ cho bạn kết quả này

Ghi chú. Nếu bạn cố gắng chèn tài liệu vào một bộ sưu tập không tồn tại, MongoDB sẽ tự động tạo bộ sưu tập



Chèn nhiều tài liệu

Để chèn nhiều tài liệu vào một collection trong MongoDB, chúng ta sử dụng phương thức insertMany()

Tham số đầu tiên của phương thức insertMany() là một mảng đối tượng, chứa dữ liệu bạn muốn chèn

Nó cũng có chức năng gọi lại nơi bạn có thể làm việc với bất kỳ lỗi nào hoặc kết quả của việc chèn

Thí dụ

Chèn nhiều tài liệu vào bộ sưu tập "khách hàng"

var MongoClient = yêu cầu('mongodb'). MongoClient;
var url = "mongodb. //máy chủ cục bộ. 27017/";

MongoClient. kết nối (url, chức năng (err, db) {
nếu (err) ném err;
var dbo = db. db("mydb");
var myobj = [
{ Tên. 'John', địa chỉ. 'Quốc lộ 71'},
{ Tên. 'Peter', địa chỉ. 'Phố thấp 4'},
{ Tên. 'Amy', địa chỉ. 'Apple st 652'},
{ Tên. 'Hannah', địa chỉ. 'Núi 21'},
{ Tên. 'Michael', địa chỉ. 'Thung lũng 345'},
{ Tên. 'Sandy', địa chỉ. 'Đại lộ 2'},
{ Tên. 'Betty', địa chỉ. 'Cỏ xanh 1'},
{ Tên. 'Richard', địa chỉ. 'Bầu trời đường 331'},
{ Tên. 'Susan', địa chỉ. 'Một chiều 98'},
{ Tên. 'Vicky', địa chỉ. 'Khu vườn vàng 2'},
{ Tên. 'Ben', địa chỉ. 'Công viên ngõ 38'},
{ Tên. 'William', địa chỉ. 'Trung tâm đường 954'},
{ Tên. 'Chuck', địa chỉ. 'Đường chính 989'},
{ Tên. 'Viola', địa chỉ. 'Đi ngang 1633'}
];
dbo. bộ sưu tập ("khách hàng"). insertMany(myobj, function(err, res) {
nếu (err) ném err;
bảng điều khiển. log("Số tài liệu đã chèn. " + độ phân giải. insertCount);
db. Thoát();
});
});

Chạy ví dụ »

Lưu mã ở trên vào tệp có tên "demo_mongodb_insert_multiple. js" và chạy tệp

Chạy "demo_mongodb_insert_multiple. js"

C. \Users\Tên của bạn>nút demo_mongodb_insert_multiple. js

Cái nào sẽ cho bạn kết quả này

Số lượng tài liệu được chèn. 14


đối tượng kết quả

Khi thực thi phương thức insertMany(), một đối tượng kết quả được trả về

Đối tượng kết quả chứa thông tin về cách chèn ảnh hưởng đến cơ sở dữ liệu

Đối tượng được trả về từ ví dụ trên trông như thế này

{
kết quả. { Vâng. 1, n. 14 },
hoạt động. [
{ Tên. 'John', địa chỉ. 'Quốc lộ 71', _id. 58fdbf5c0ef8a50b4cdd9a84 },
{ Tên. 'Peter', địa chỉ. 'Lowstreet 4', _id. 58fdbf5c0ef8a50b4cdd9a85 },
{ Tên. 'Amy', địa chỉ. 'Apple st 652', _id. 58fdbf5c0ef8a50b4cdd9a86 },
{ Tên. 'Hannah', địa chỉ. 'Núi 21', _id. 58fdbf5c0ef8a50b4cdd9a87 },
{ Tên. 'Michael', địa chỉ. 'Thung lũng 345', _id. 58fdbf5c0ef8a50b4cdd9a88 },
{ Tên. 'Sandy', địa chỉ. 'Đại lộ 2', _id. 58fdbf5c0ef8a50b4cdd9a89 },
{ Tên. 'Betty', địa chỉ. 'Cỏ xanh 1', _id. 58fdbf5c0ef8a50b4cdd9a8a },
{ Tên. 'Richard', địa chỉ. 'Bầu trời đường 331', _id. 58fdbf5c0ef8a50b4cdd9a8b },
{ Tên. 'Susan', địa chỉ. 'Một chiều 98', _id. 58fdbf5c0ef8a50b4cdd9a8c },
{ Tên. 'Vicky', địa chỉ. 'Khu vườn vàng 2', _id. 58fdbf5c0ef8a50b4cdd9a8d },
{ Tên. 'Ben', địa chỉ. 'Công viên ngõ 38', _id. 58fdbf5c0ef8a50b4cdd9a8e },
{ Tên. 'William', địa chỉ. 'Trung tâm đường 954', _id. 58fdbf5c0ef8a50b4cdd9a8f },
{ Tên. 'Chuck', địa chỉ. 'Đường chính 989', _id. 58fdbf5c0ef8a50b4cdd9a90 },
{ Tên. 'Viola', địa chỉ. 'Đi ngang 1633', _id. 58fdbf5c0ef8a50b4cdd9a91 } ],
đã chèn. 14,
id đã chèn. [
58fdbf5c0ef8a50b4cdd9a84,
58fdbf5c0ef8a50b4cdd9a85,
58fdbf5c0ef8a50b4cdd9a86,
58fdbf5c0ef8a50b4cdd9a87,
58fdbf5c0ef8a50b4cdd9a88,
58fdbf5c0ef8a50b4cdd9a89,
58fdbf5c0ef8a50b4cdd9a8a,
58fdbf5c0ef8a50b4cdd9a8b,
58fdbf5c0ef8a50b4cdd9a8c,
58fdbf5c0ef8a50b4cdd9a8d,
58fdbf5c0ef8a50b4cdd9a8e,
58fdbf5c0ef8a50b4cdd9a8f
58fdbf5c0ef8a50b4cdd9a90,
58fdbf5c0ef8a50b4cdd9a91 ]
}

Các giá trị của các thuộc tính có thể được hiển thị như thế này

Thí dụ

Trả về số tài liệu đã chèn

bảng điều khiển. nhật ký (độ phân giải. được chèn vào)

Cái nào sẽ tạo ra kết quả này


Trường _id

Nếu bạn không chỉ định trường _id, thì MongoDB sẽ thêm một trường cho bạn và chỉ định một id duy nhất cho mỗi tài liệu

Trong ví dụ trên, không có trường _id nào được chỉ định và như bạn có thể thấy từ đối tượng kết quả, MongoDB đã gán một _id duy nhất cho mỗi tài liệu

Làm cách nào để chèn dữ liệu vào MongoDB?

Để chèn dữ liệu vào bộ sưu tập MongoDB, bạn cần sử dụng phương thức insert() hoặc save() của MongoDB .

Làm cách nào để chèn một bản ghi trong MongoDB?

Trình vỏ MongoDB cung cấp các phương thức sau để chèn tài liệu vào bộ sưu tập. .
Để chèn một tài liệu, hãy sử dụng db. thu thập. chènMột ()
Để chèn nhiều tài liệu, hãy sử dụng db. thu thập. chènMany()

Phương pháp nào được sử dụng để thêm bản ghi trong MongoDB?

Để chèn một bản ghi hoặc tài liệu như nó được gọi trong MongoDB, vào một bộ sưu tập, chúng tôi sử dụng phương thức insertOne() . Tham số đầu tiên của phương thức insertOne() là một đối tượng chứa (các) tên và (các) giá trị của từng trường trong tài liệu mà bạn muốn chèn.

Làm cách nào để chèn dữ liệu JSON vào MongoDB?

Mở Trình hướng dẫn Nhập. Sau đó, chọn JSON làm định dạng nhập và nhấp vào OK. Nhấp vào + để thêm tài liệu nguồn JSON, – để xóa chúng hoặc biểu tượng khay nhớ tạm để dán dữ liệu JSON từ khay nhớ tạm . Ở đây chúng tôi sẽ thêm tài liệu nguồn JSON, Rainfall-Data.