Bài 3: Cơ bản về Shell MongoDB
Giới thiệu
Shell MongoDB là công cụ truyền dẫn qua dòng lệnh được tích hợp trong MongoDB, giúp bạn thao tác trực tiếp với cơ sở dữ liệu. Nó là một giao diện tương tác, giúp bạn thực hiện các phép CRUD (Create, Read, Update, Delete), truy vấn và nhiều thao tác khác.
Các lệnh CRUD trong MongoDB Shell
Create (Tạo mới)
Để tạo một document mới trong MongoDB, bạn có thể sử dụng lệnh insertOne() hoặc insertMany().
// Thêm một document
db.collectionName.insertOne({
name: 'Alice',
age: 30
});
// Thêm nhiều documents
db.collectionName.insertMany([
{
name: 'Bob',
age: 22
},
{
name: 'Charlie',
age: 25
}
]);
Read (Đọc)
Để đọc dữ liệu, chúng ta có thể sử dụng các lệnh như find() hoặc findOne().
// Tìm tất cả các document trong collection
db.collectionName.find();
// Tìm document đầu tiên trong collection
db.collectionName.findOne();
// Tìm các document với điều kiện
db.collectionName.find({ age: { $gt: 20 } });
Ở đây, $gt là toán tử "greater than" (lớn hơn).
Update (Cập nhật)
Bạn có thể cập nhật document sử dụng lệnh updateOne() hoặc updateMany().
// Cập nhật một document
db.collectionName.updateOne(
{ name: 'Alice' },
{ $set: { age: 31 } }
);
// Cập nhật nhiều documents
db.collectionName.updateMany(
{ age: { $gt: 20 } },
{ $set: { status: 'active' } }
);
Ở đây, $set là toán tử được sử dụng để cập nhật giá trị của một trường.
Delete (Xóa)
Để xóa document, bạn sẽ sử dụng lệnh deleteOne() hoặc deleteMany().
// Xóa một document
db.collectionName.deleteOne({ name: 'Alice' });
// Xóa nhiều documents
db.collectionName.deleteMany({ age: { $lt: 25 } });
Ở đây, $lt là toán tử "less than" (nhỏ hơn).
Ngôn ngữ Truy vấn và Document giống JSON
Một trong những điểm mạnh của MongoDB là ngôn ngữ truy vấn rất mạnh mẽ và linh hoạt, hỗ trợ cả truy vấn động. Dữ liệu trong MongoDB được lưu trữ dưới dạng BSON (Binary JSON), một biến thể của JSON. Do đó, bạn có thể thao tác với dữ liệu như làm việc với các đối tượng JSON.
Ví dụ, để tìm các document có trường age lớn hơn 20 và có trường status là "active", bạn có thể viết truy vấn như sau:
db.collectionName.find({
age: { $gt: 20 },
status: 'active'
});
Bạn cũng có thể sử dụng các phương pháp truy vấn nâng cao như $or, $and, $in, v.v.
// Sử dụng $or
db.collectionName.find({
$or: [
{ age: { $lt: 20 } },
{ status: 'inactive' }
]
});
// Sử dụng $in
db.collectionName.find({
age: { $in: [20, 25, 30] }
});
Như vậy, thông qua shell MongoDB, bạn có thể thực hiện nhanh chóng các thao tác CRUD và truy vấn dữ liệu với ngôn ngữ truy vấn phong phú, đầy đủ tính năng.