Chào các bạn, những法师嗣未来的数据库大师!? Tôi rất vui mừng được làm hướng dẫn viên của các bạn trong hành trình thú vị vào thế giới của MongoDB và PHP. Là một ai đó đã dạy khoa học máy tính trong nhiều năm, tôi đã chứng kiến rất nhiều sinh viên tỏa sáng khi họ nắm bắt được các khái niệm này. Vậy hãy cùng nhau lặn vào và tạo ra một phép thuật cơ sở dữ liệu nào!

MongoDB - PHP

Kết nối và Chọn Cơ sở Dữ liệu

Trước khi chúng ta có thể làm bất cứ điều gì phức tạp, chúng ta cần kết nối với máy chủ MongoDB của mình và chọn một cơ sở dữ liệu. Hãy tưởng tượng điều này như việc gõ cửa một thư viện khổng lồ và yêu cầu được vào.

Dưới đây là cách chúng ta làm:

<?php
// Tạo một MongoDB client mới
$client = new MongoDB\Client("mongodb://localhost:27017");

// Chọn một cơ sở dữ liệu
$database = $client->selectDatabase("myAwesomeDB");

echo "Kết nối thành công đến cơ sở dữ liệu!";
?>

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

  1. Chúng ta tạo một MongoDB client mới,告诉它我们的MongoDB服务器在哪里(在本例中,它在我们的本地机器上)。
  2. Sau đó, chúng ta chọn một cơ sở dữ liệu có tên là "myAwesomeDB". Nếu nó không tồn tại, MongoDB sẽ tạo ra nó cho chúng ta. Thật tuyệt vời phải không?

Lời khuyên chuyên nghiệp: Luôn kiểm tra xem kết nối của bạn có thành công hay không. Trong một tình huống thực tế, bạn sẽ muốn bọc điều này trong một khối try-catch để xử lý các lỗi kết nối một cách từ từ.

Tạo một Collection

Bây giờ chúng ta đã ở trong cơ sở dữ liệu của mình, chúng ta cần một nơi để lưu trữ dữ liệu của mình. Trong MongoDB, chúng ta gọi những nơi này là "collections". Hãy tưởng tượng một collection như một ngăn kéo trong một tủ tài liệu.

Dưới đây là cách chúng ta tạo một collection:

<?php
// Tạo một collection mới
$collection = $database->createCollection("myFirstCollection");

echo "Collection đã được tạo thành công!";
?>

Dễ như trở bàn tay, phải không? Chúng ta vừa yêu cầu cơ sở dữ liệu của mình tạo một collection mới có tên là "myFirstCollection". Nếu collection đã tồn tại, MongoDB sẽ chỉ trả về collection hiện có.

Chèn một Document

Đã đến lúc đặt thứ gì đó vào collection mới của chúng ta! Trong MongoDB, chúng ta lưu trữ dữ liệu dưới dạng "documents". Những điều này rất giống với các đối tượng JSON mà bạn có thể đã thấy trước đây.

Hãy thêm một document về một chú mèo dễ thương:

<?php
$document = [
    "name" => "Whiskers",
    "age" => 3,
    "color" => "orange",
    "likes" => ["ngủ", "cá", "đèn laser"]
];

$insertResult = $collection->insertOne($document);

echo "Chèn document với ID: " . $insertResult->getInsertedId();
?>

Dưới đây là những gì đang xảy ra:

  1. Chúng ta tạo một mảng đại diện cho document của chúng ta. Nó có các trường mô tả chú mèo của chúng ta.
  2. Chúng ta sử dụng phương thức insertOne() để thêm document này vào collection của chúng ta.
  3. MongoDB cung cấp cho mỗi document một ID duy nhất, mà chúng ta có thể lấy bằng getInsertedId().

Tìm Tất Cả Các Document

Bây giờ chúng ta đã có một số dữ liệu, hãy lấy nó ra. Chúng ta sẽ sử dụng phương thức find() để lấy tất cả các document trong collection:

<?php
$cursor = $collection->find();

foreach ($cursor as $document) {
    echo "Name: " . $document["name"] . ", Age: " . $document["age"] . "\n";
}
?>

Mã này sẽ in ra tên và tuổi của mỗi chú mèo trong collection của chúng ta. Phương thức find() trả về một con trỏ, mà chúng ta có thể duyệt qua để truy cập mỗi document.

Cập Nhật một Document

Úi! Chúng ta vừa nhận ra Whiskers đã có生日. Hãy cập nhật tuổi của anh ấy:

<?php
$updateResult = $collection->updateOne(
    ["name" => "Whiskers"],
    ['$set' => ["age" => 4]]
);

echo "Khớp " . $updateResult->getMatchedCount() . " document(s)\n";
echo "Chỉnh sửa " . $updateResult->getModifiedCount() . " document(s)";
?>

Dưới đây là những gì đang xảy ra:

  1. Chúng ta sử dụng updateOne() để tìm một document nơi tên là "Whiskers".
  2. Sau đó, chúng ta sử dụng toán tử $set để thay đổi tuổi thành 4.
  3. Phương thức trả về thông tin về số lượng document được khớp và chỉnh sửa.

Xóa một Document

Đôi khi, chúng ta cần xóa dữ liệu. Giả sử Whiskers đã tìm thấy một ngôi nhà mới (đừng lo lắng, anh ấy rất hạnh phúc ở đó!). Chúng ta có thể xóa document của anh ấy như này:

<?php
$deleteResult = $collection->deleteOne(["name" => "Whiskers"]);

echo "Xóa " . $deleteResult->getDeletedCount() . " document(s)";
?>

Mã này tìm một document nơi tên là "Whiskers" và xóa nó. Phương thức getDeletedCount() cho chúng ta biết số lượng document đã bị xóa.

Phương Thức MongoDB PHP

Dưới đây là bảng tiện ích của các phương thức MongoDB PHP mà chúng ta đã xem xét:

Phương thức Mô tả
new MongoDB\Client() Tạo một MongoDB client mới
selectDatabase() Chọn một cơ sở dữ liệu
createCollection() Tạo một collection mới
insertOne() Chèn một document
find() Truy xuất document từ một collection
updateOne() Cập nhật một document
deleteOne() Xóa một document

Và thế là xong! Bạn đã học được những alap của việc làm việc với MongoDB bằng PHP. Nhớ rằng, thực hành là chìa khóa để thành thạo, vì vậy đừng ngại thử nghiệm với các phương thức này. Thử tạo các collection khác nhau, chèn các loại document khác nhau và chơi với các truy vấn phức tạp hơn.

Trong những năm dạy học của tôi, tôi đã thấy rằng những sinh viên dấn thân vào mã và làm脏手 với mã là những người thực sự thành thạo các khái niệm này. Vậy hãy tiến lên, người học, và chúc may mắn với cơ sở dữ liệu! ??

Credits: Image by storyset