Node.js - MongoDB Chèn dữ liệu

Xin chào các bạn đang học lập trình! Hôm nay, chúng ta sẽ bắt đầu một hành trình thú vị vào thế giới của Node.js và MongoDB. Cụ thể, chúng ta sẽ khám phá cách chèn dữ liệu vào MongoDB bằng Node.js. Đừng lo lắng nếu bạn mới bắt đầu - tôi sẽ hướng dẫn bạn từng bước với sự kiên nhẫn của một bà nội dạy cháu cách nướng bánh cookies lần đầu tiên.

Node.js - MongoDB Insert

MongoDB là gì?

Trước khi chúng ta đi vào chi tiết của việc chèn dữ liệu, hãy dành một chút thời gian để hiểu MongoDB là gì. Hãy tưởng tượng bạn có một tủ đựng hồ sơ kỹ thuật số khổng lồ nơi bạn có thể lưu trữ mọi loại thông tin. Đó chính là MongoDB - một cơ sở dữ liệu lưu trữ dữ liệu theo định dạng linh hoạt, tương tự JSON gọi là BSON (Binary JSON).

Thiết lập môi trường

Trước hết, chúng ta cần đảm bảo rằng chúng ta đã cài đặt Node.js và MongoDB trên máy tính của mình. Nếu bạn chưa làm điều này, điều đó giống như cố gắng nướng bánh mà không có lò nướng hoặc nguyên liệu! Hãy truy cập các trang web chính thức của Node.js và MongoDB để tải xuống và cài đặt chúng.

Khi bạn đã thiết lập xong, chúng ta cần cài đặt trình điều khiển MongoDB cho Node.js. Mở terminal (đừng sợ, đó chỉ là một cách để giao tiếp với máy tính của bạn bằng văn bản) và gõ:

npm install mongodb

Lệnh này giống như bảo máy tính của bạn đi đến cửa hàng và mua gói MongoDB cho bạn.

Kết nối với MongoDB

Trước khi chúng ta có thể chèn bất kỳ dữ liệu nào, chúng ta cần thiết lập kết nối với cơ sở dữ liệu MongoDB của mình. Đây là cách chúng ta làm:

const MongoClient = require('mongodb').MongoClient;
const url = "mongodb://localhost:27017/mydb";

MongoClient.connect(url, function(err, db) {
if (err) throw err;
console.log("Database created!");
db.close();
});

Hãy phân tích điều này:

  1. Chúng ta đang nhập mô-đun MongoDB.
  2. Chúng ta chỉ định URL nơi máy chủ MongoDB của chúng ta đang chạy.
  3. Chúng ta sử dụng phương thức connect để thiết lập kết nối.
  4. Nếu có lỗi, chúng ta ném nó (giống như bỏ ra một quả táo坏的).
  5. Nếu kết nối thành công, chúng ta ghi một thông báo.
  6. Cuối cùng, chúng ta đóng kết nối cơ sở dữ liệu.

Chèn dữ liệu vào MongoDB

Bây giờ chúng ta đã thiết lập kết nối, hãy xem xét hai phương thức chính để chèn dữ liệu vào MongoDB: insertOne()insertMany().

Phương thức insertOne()

Phương thức insertOne() giống như cẩn thận đặt một cuốn sách duy nhất lên kệ sách của bạn. Nó cho phép chúng ta chèn một tài liệu duy nhất vào một bộ sưu tập. Đây là cách nó hoạt động:

const MongoClient = require('mongodb').MongoClient;
const url = "mongodb://localhost:27017/";

MongoClient.connect(url, function(err, db) {
if (err) throw err;
const dbo = db.db("mydb");
const myobj = { name: "John Doe", address: "Highway 37" };
dbo.collection("customers").insertOne(myobj, function(err, res) {
if (err) throw err;
console.log("1 document inserted");
db.close();
});
});

Hãy phân tích mã này:

  1. Chúng ta kết nối với cơ sở dữ liệu.
  2. Chúng ta tạo một đối tượng myobj với dữ liệu chúng ta muốn chèn.
  3. Chúng ta sử dụng dbo.collection("customers").insertOne() để chèn đối tượng vào bộ sưu tập "customers".
  4. Nếu thành công, chúng ta ghi một thông báo và đóng kết nối.

Phương thức insertMany()

Bây giờ, nếu bạn muốn thêm nhiều cuốn sách vào kệ cùng một lúc? Đó là lúc phương thức insertMany() phát huy tác dụng. Phương thức này cho phép chúng ta chèn nhiều tài liệu cùng một lúc:

const MongoClient = require('mongodb').MongoClient;
const url = "mongodb://localhost:27017/";

MongoClient.connect(url, function(err, db) {
if (err) throw err;
const dbo = db.db("mydb");
const myobj = [
{ name: 'John', address: 'Highway 71'},
{ name: 'Peter', address: 'Lowstreet 4'},
{ name: 'Amy', address: 'Apple st 652'}
];
dbo.collection("customers").insertMany(myobj, function(err, res) {
if (err) throw err;
console.log("Number of documents inserted: " + res.insertedCount);
db.close();
});
});

Đây là những gì đang xảy ra:

  1. Chúng ta tạo một mảng các đối tượng, mỗi đối tượng đại diện cho một tài liệu chúng ta muốn chèn.
  2. Chúng ta sử dụng dbo.collection("customers").insertMany() để chèn tất cả các đối tượng cùng một lúc.
  3. Chúng ta ghi số lượng tài liệu đã chèn bằng res.insertedCount.

So sánh insertOne() và insertMany()

Để giúp bạn hiểu rõ hơn về sự khác biệt giữa hai phương thức này, hãy cùng xem bảng so sánh:

Tính năng insertOne() insertMany()
Số lượng tài liệu Chèn một tài liệu duy nhất Chèn nhiều tài liệu
Đầu vào Nhận một đối tượng duy nhất Nhận một mảng các đối tượng
Giá trị trả về Trả về một đối tượng InsertOneResult Trả về một đối tượng InsertManyResult
Hiệu suất Chậm hơn khi chèn nhiều tài liệu Nhanh hơn khi chèn nhiều tài liệu
Trường hợp sử dụng Khi bạn cần chèn một tài liệu duy nhất Khi bạn cần chèn nhiều tài liệu cùng một lúc

Kết luận

Và thế là chúng ta đã thành công trong việc chèn dữ liệu vào MongoDB bằng Node.js. Nhớ rằng insertOne() giống như cẩn thận đặt một cuốn sách duy nhất lên kệ, trong khi insertMany() giống như restocking một entire bookcase tại một lần.

Thực hành là cách tốt nhất để trở thành người thợ, vì vậy đừng ngại thử nghiệm với các phương thức này. Thử chèn các loại dữ liệu khác nhau, hoặc xem bạn có thể chèn bao nhiêu tài liệu cùng một lúc bằng insertMany(). Ai biết được, bạn có thể sẽ xây dựng ứng dụng cơ sở dữ liệu驱动的 lớn tiếp theo!

Nhớ rằng, mỗi chuyên gia đều từng là người mới bắt đầu. Tiếp tục mã hóa, tiếp tục học hỏi, và quan trọng nhất, tiếp tục vui vẻ! Đến gặp lại các bạn vào lần sau, chúc các bạn mã hóa vui vẻ!

Credits: Image by storyset