MongoDB - PHP: 초보자 가이드

안녕하세요, 미래의 데이터베이스 마법사 여러분! ? MongoDB와 PHP의 세계로 흥미로운 여정을 안내해 드리게 되어 기쁩니다. 컴퓨터 과학을 몇 년 동안 가르쳐온 저는 이 개념을 이해하면서 학생들이 눈빛을 띠는 것을 수없이 목격했습니다. 그럼 이제 데이터베이스 마법을 함께 만들어 보겠습니다!

MongoDB - PHP

연결 및 데이터베이스 선택

아무 복잡한 작업을 하기 전에, 먼저 MongoDB 서버에 연결하고 데이터베이스를 선택해야 합니다. 이를 엄청난 도서관의 문을 두드리고 들어가겠다는 것으로 생각해 보세요.

이렇게 합니다:

<?php
// 새로운 MongoDB 클라이언트 생성
$client = new MongoDB\Client("mongodb://localhost:27017");

// 데이터베이스 선택
$database = $client->selectDatabase("myAwesomeDB");

echo "데이터베이스에 성공적으로 연결되었습니다!";
?>

이를 간단히 설명하자면:

  1. 우리는 새로운 MongoDB 클라이언트를 생성하고, MongoDB 서버의 위치를 지정합니다 (이 경우, 로컬 머신입니다).
  2. 그런 다음 "myAwesomeDB"라는 데이터베이스를 선택합니다. 만약 데이터베이스가 존재하지 않는다면, MongoDB가 자동으로 생성해 줍니다. 정말 친절하죠?

프로 팁: 항상 연결이 성공했는지 확인하세요. 실제 사용 사례에서는 try-catch 블록으로 감싸서 연결 오류를 부드럽게 처리할 것입니다.

콜렉션 생성

이제 데이터베이스에 들어왔으니, 데이터를 저장할 곳이 필요합니다. MongoDB에서 이러한 곳을 "콜렉션"이라고 부릅니다. 콜렉션은 파일 캐비닛의抽斗에 비유할 수 있습니다.

이렇게 생성합니다:

<?php
// 새로운 콜렉션 생성
$collection = $database->createCollection("myFirstCollection");

echo "콜렉션이 성공적으로 생성되었습니다!";
?>

이리하여, 우리는 데이터베이스에 "myFirstCollection"이라는 새로운 콜렉션을 생성했습니다. 만약 콜렉션이 이미 존재한다면, MongoDB는 단순히 기존 콜렉션을 반환합니다.

문서 추가

이제 우리의 반짝이는 새로운 콜렉션에 무언가를 넣어보겠습니다! MongoDB에서는 데이터를 "문서"로 저장합니다. 이는 JSON 오브젝트와 비슷합니다.

귀여운 고양이에 대한 문서를 추가해 보겠습니다:

<?php
$document = [
"name" => "Whiskers",
"age" => 3,
"color" => "orange",
"likes" => ["낮잠", "물고기", "레이저 포인터"]
];

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

echo "문서가 ID: " . $insertResult->getInsertedId() . "로 추가되었습니다!";
?>

이리하여:

  1. 우리는 고양이에 대한 정보를 포함한 배열을 생성합니다.
  2. insertOne() 메서드를 사용하여 이 문서를 콜렉션에 추가합니다.
  3. MongoDB는 각 문서에 고유한 ID를 부여하며, 이를 getInsertedId()로 가져올 수 있습니다.

모든 문서 검색

이제 데이터가 있으니, 다시 꺼내보겠습니다. find() 메서드를 사용하여 콜렉션의 모든 문서를 가져옵니다:

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

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

이 코드는 콜렉션에 있는 모든 고양이의 이름과 나이를 출력합니다. find() 메서드는 커서를 반환하며, 이를 반복문을 통해 각 문서에 접근할 수 있습니다.

문서 업데이트

아이고! Whiskers가 생일을 맞이했습니다. 그의 나이를 업데이트해 보겠습니다:

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

echo "일치한 문서 수: " . $updateResult->getMatchedCount() . "개\n";
echo "수정된 문서 수: " . $updateResult->getModifiedCount() . "개";
?>

이리하여:

  1. updateOne()를 사용하여 이름이 "Whiskers"인 문서를 찾습니다.
  2. $set 연산자를 사용하여 나이를 4로 변경합니다.
  3. 메서드는 일치한 문서 수와 수정된 문서 수를 반환합니다.

문서 삭제

때로는 데이터를 제거해야 합니다. 예를 들어, Whiskers가 새로운 집을 찾았다면 ( 걱정하지 마세요, 그는 행복합니다!), 그의 문서를 다음과 같이 삭제할 수 있습니다:

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

echo "삭제된 문서 수: " . $deleteResult->getDeletedCount() . "개";
?>

이 코드는 이름이 "Whiskers"인 문서를 찾아서 삭제합니다. getDeletedCount() 메서드는 제거된 문서 수를 반환합니다.

MongoDB PHP 메서드

다음은 주요 MongoDB PHP 메서드의 표입니다:

메서드 설명
new MongoDB\Client() 새로운 MongoDB 클라이언트 생성
selectDatabase() 데이터베이스 선택
createCollection() 새로운 콜렉션 생성
insertOne() 단일 문서 추가
find() 콜렉션에서 문서 검색
updateOne() 단일 문서 업데이트
deleteOne() 단일 문서 삭제

이제 MongoDB를 사용하여 PHP로 작업하는 기본을 배웠습니다. 연습이 완벽을 이루는 것이니, 이 메서드들을 다양하게 실험해 보세요. 다양한 콜렉션을 생성하고, 여러 종류의 문서를 추가하고, 더 복잡한 쿼리를 연습해 보세요.

저의 경험상, 코드에 손을 대고 직접 만들어보는 학생들이 이 개념을 진정으로 습득합니다. 그러므로, 어린 padawan, 데이터베이스와 함께라면 무적입니다! ??

Credits: Image by storyset