Node.js - MongoDB Tạo Cơ Sở Dữ Liệu
Xin chào các bạn 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. Là người dạy khoa học máy tính gần gũi của bạn, tôi sẽ hướng dẫn bạn qua quy trình tạo cơ sở dữ liệu bằng những công cụ mạnh mẽ này. Đừng lo lắng nếu bạn là người mới bắt đầu lập trình - chúng ta sẽ bắt đầu từ những基础知识 và dần nâng cao. Vậy, hãy lấy một tách cà phê (hoặc đồ uống yêu thích của bạn), và cùng nhau bắt đầu!
MongoDB là gì?
Trước khi bắt đầu tạo cơ sở 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ồ để 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 ở định dạng linh hoạt, tương tự JSON gọi là BSON (Binary JSON). Nó giống như có một trợ lý siêu tổ chức có thể nhanh chóng tìm thấy và lấy bất kỳ mảnh thông tin nào bạn cần.
Chuỗi Kết Nối: Cổng Đ入场 vào MongoDB
Bây giờ chúng ta đã biết MongoDB là gì, hãy nói về cách chúng ta kết nối với nó. Hãy tưởng tượng một chuỗi kết nối như một cái bắt tay bí mật giữa ứng dụng Node.js của bạn và MongoDB. Nó chứa tất cả thông tin cần thiết để thiết lập kết nối, chẳng hạn như địa chỉ máy chủ MongoDB, số cổng và bất kỳ chi tiết xác thực nào.
Đây là một chuỗi kết nối MongoDB điển hình:
mongodb://username:password@hostname:port/database
Hãy phân tích này:
-
mongodb://
: Đây là giao thức,告诉 ứng dụng của bạn rằng nó đang kết nối với cơ sở dữ liệu MongoDB. -
username:password
: Thông tin đăng nhập của bạn (nếu cần). -
hostname
: Địa chỉ của máy chủ MongoDB (ví dụ: localhost cho máy tính của bạn). -
port
: Số cổng mà MongoDB đang lắng nghe (mặc định là 27017). -
database
: Tên của cơ sở dữ liệu bạn muốn kết nối.
Ví dụ: Danh sách các Cơ sở Dữ liệu
Bây giờ, hãy cùng làm việc với một chút mã! Chúng ta sẽ bắt đầu bằng cách kết nối với MongoDB và liệt kê tất cả các cơ sở dữ liệu. Đây là một cách tuyệt vời để kiểm tra xem kết nối của chúng ta có hoạt động không và xem có những cơ sở dữ liệu nào đã tồn tại.
const MongoClient = require('mongodb').MongoClient;
// Địa chỉ Kết nối
const url = 'mongodb://localhost:27017';
// Tên Cơ sở Dữ liệu
const dbName = 'myproject';
// Tạo một MongoClient mới
const client = new MongoClient(url, { useNewUrlParser: true, useUnifiedTopology: true });
// Kết nối đến máy chủ
client.connect(function(err) {
if (err) {
console.error('Failed to connect to MongoDB:', err);
return;
}
console.log("Connected successfully to server");
// Lấy cơ sở dữ liệu admin
const adminDb = client.db(dbName).admin();
// Liệt kê tất cả các cơ sở dữ liệu khả dụng
adminDb.listDatabases(function(err, dbs) {
if (err) {
console.error('Failed to list databases:', err);
return;
}
console.log("Databases:");
dbs.databases.forEach(function(db) {
console.log(" - " + db.name);
});
client.close();
});
});
Hãy phân tích mã này:
- Chúng ta bắt đầu bằng cách yêu cầu trình điều khiển MongoDB cho Node.js.
- Chúng ta thiết lập địa chỉ kết nối và tên cơ sở dữ liệu.
- Chúng ta tạo một MongoClient mới với một số tùy chọn để cải thiện hiệu suất.
- Chúng ta sử dụng phương thức
connect
để thiết lập kết nối với MongoDB. - Nếu kết nối thành công, chúng ta lấy cơ sở dữ liệu admin.
- Chúng ta sử dụng phương thức
listDatabases
để lấy danh sách tất cả các cơ sở dữ liệu. - Chúng ta in ra tên của tất cả các cơ sở dữ liệu.
- Cuối cùng, chúng ta đóng kết nối.
Khi bạn chạy mã này, bạn sẽ thấy danh sách tất cả các cơ sở dữ liệu trong thực thể MongoDB của bạn. Điều này giống như hỏi tủ đựng hồ sơ kỹ thuật số của bạn, "Hey, bạn có những文件夹 nào?"
Tạo một Cơ sở Dữ liệu Mới
Bây giờ, hãy đến phần thú vị - tạo cơ sở dữ liệu riêng của chúng ta! Trong MongoDB, các cơ sở dữ liệu và bộ sưu tập được tạo tự động khi bạn lần đầu tiên lưu trữ dữ liệu trong chúng. Nó giống như魔法 - bạn không cần tạo chúng trước.
Hãy tạo một cơ sở dữ liệu mới có tên "myNewDB" và thêm một bộ sưu tập gọi là "students":
const MongoClient = require('mongodb').MongoClient;
// Địa chỉ Kết nối
const url = 'mongodb://localhost:27017';
// Tên Cơ sở Dữ liệu
const dbName = 'myNewDB';
// Tạo một MongoClient mới
const client = new MongoClient(url, { useNewUrlParser: true, useUnifiedTopology: true });
// Kết nối đến máy chủ
client.connect(function(err) {
if (err) {
console.error('Failed to connect to MongoDB:', err);
return;
}
console.log("Connected successfully to server");
// Lấy cơ sở dữ liệu
const db = client.db(dbName);
// Tạo một bộ sưu tập mới
db.createCollection("students", function(err, res) {
if (err) {
console.error('Failed to create collection:', err);
return;
}
console.log("Collection created!");
// Chèn một tài liệu
db.collection('students').insertOne({
name: "John Doe",
age: 20,
grade: "A"
}, function(err, res) {
if (err) {
console.error('Failed to insert document:', err);
return;
}
console.log("Document inserted");
// Đóng kết nối
client.close();
});
});
});
Hãy phân tích những gì đang xảy ra ở đây:
- Chúng ta kết nối với MongoDB như trước.
- Chúng ta sử dụng
client.db(dbName)
để lấy cơ sở dữ liệu mới của chúng ta. Nếu nó không tồn tại, MongoDB sẽ tạo nó cho chúng ta. - Chúng ta tạo một bộ sưu tập mới gọi là "students" sử dụng
db.createCollection()
. - Chúng ta chèn một tài liệu vào bộ sưu tập của chúng ta sử dụng
insertOne()
. - Cuối cùng, chúng ta đóng kết nối.
Khi bạn chạy mã này, MongoDB sẽ tạo cơ sở dữ liệu "myNewDB" và bộ sưu tập "students", và chèn tài liệu chứa thông tin của John Doe. Điều này giống như tạo một tủ đựng hồ sơ mới, thêm một文件夹叫做 "students", và đặt hồ sơ của John vào đó.
Kết luận
Chúc mừng! Bạn đã học cách kết nối với MongoDB, liệt kê các cơ sở dữ liệu hiện có và tạo một cơ sở dữ liệu mới với một bộ sưu tập. Bạn đã trên đường trở thành một phù thủy cơ sở dữ liệu!
Hãy nhớ, thực hành làm cho hoàn hảo. Thử tạo các cơ sở dữ liệu khác nhau, các bộ sưu tập và chèn các loại tài liệu khác nhau. Thử nghiệm với các truy vấn dữ liệu bạn đã chèn. Càng chơi với MongoDB, bạn sẽ càng thoải mái hơn với nó.
Dưới đây là bảng tóm tắt các phương thức chính chúng ta đã sử dụng:
Phương thức | Mô tả |
---|---|
MongoClient.connect() |
Thiết lập kết nối với MongoDB |
client.db() |
Lấy một tham chiếu đến cơ sở dữ liệu |
adminDb.listDatabases() |
Liệt kê tất cả các cơ sở dữ liệu khả dụng |
db.createCollection() |
Tạo một bộ sưu tập mới |
collection.insertOne() |
Chèn một tài liệu vào một bộ sưu tập |
Chúc bạn lập trình vui vẻ, và mong rằng cơ sở dữ liệu của bạn luôn được tổ chức tốt và các truy vấn của bạn luôn nhanh chóng!
Credits: Image by storyset