Docs Menu
Docs Home
/ / /
PHP 라이브러리 매뉴얼

데이터베이스 및 컬렉션

이 페이지의 내용

  • 개요
  • 데이터베이스에 액세스
  • 컬렉션에 액세스
  • 컬렉션 생성
  • 컬렉션 목록 가져오기
  • 컬렉션 삭제
  • 읽기 및 쓰기 작업 구성
  • API 문서

이 가이드 에서는 MongoDB PHP 라이브러리로 MongoDB 데이터베이스 및 컬렉션을 사용하는 방법을 학습 수 있습니다.

MongoDB는 데이터를 다음 수준의 계층 구조로 구성합니다.

  • 데이터베이스: 컬렉션을 저장 하는 MongoDB deployment 의 최상위 데이터 구조입니다.

  • 컬렉션: MongoDB 문서 그룹입니다. 관계형 데이터베이스의 테이블과 유사합니다.

  • 문서: string, 숫자, 날짜 및 기타 내장된 문서와 같은 리터럴 데이터를 저장 하는 단위입니다. 문서 필드 유형 및 구조에 대한 자세한 내용은 MongoDB Server 매뉴얼의 문서 가이드 를 참조하세요.

데이터베이스 이름을 MongoDB\Client::selectDatabase() 메서드에 전달하여 데이터베이스 에 액세스합니다.

다음 예제에서는 test_database 데이터베이스에 액세스합니다.

$db = $client->selectDatabase('test_database');

또는 클라이언트 객체 에서 MongoDB\Client::__get() 매직 메서드를 암시적으로 호출할 수 있습니다. 이 메서드를 사용하면 클래스 속성 에 액세스하는 구문을 사용하여 데이터베이스 를 선택할 수 있습니다. 다음 예시 에서는 이 축약형 구문을 액세스 하여 test_database 데이터베이스 에 액세스합니다.

$db = $client->test_database;

__get() 및 PHP 매직 메서드에 학습 보려면 다음 리소스를 참조하세요.

  • MongoDB\Client::__get() 라이브러리 API 문서에서

  • 매직 메서드 PHP 매뉴얼에서

다음 방법 중 하나를 사용하여 컬렉션 에 액세스합니다.

  • MongoDB\Client::selectCollection(): 데이터베이스 및 컬렉션 이름을 매개변수로 전달

  • MongoDB\Database::selectCollection(): 컬렉션 이름을 매개변수로 전달

다음 예시 에서는 MongoDB\Database::selectCollection() 메서드를 사용하여 test_collection 라는 컬렉션 에 액세스합니다.

$collection = $client->test_database->selectCollection('test_collection');

제공된 컬렉션 이름이 데이터베이스에 아직 존재하지 않는 경우, MongoDB는 데이터를 처음 삽입할 때 컬렉션을 암시적으로 생성합니다.

또는 데이터베이스 객체 에서 MongoDB\Database::__get() 매직 메서드를 암시적으로 호출할 수 있습니다. 이 메서드를 사용하면 클래스 속성 에 액세스하는 구문을 사용하여 컬렉션 을 선택할 수 있습니다. 다음 예시 에서는 이 축약형 구문을 액세스 하여 test_collection 컬렉션 에 액세스합니다.

$collection = $db->test_collection;

학습 내용은 MongoDB\Database::__get() API 설명서를 참조하세요.

컬렉션 이름을 MongoDB\Database::createCollection() 메서드에 전달하여 MongoDB database 에 컬렉션 을 명시적으로 생성합니다.

다음 예에서는 example_collection 이라는 이름의 collection을 만듭니다.

$result = $client->test_database->createCollection('example_collection');

최대 크기 및 문서 유효성 검사 규칙과 같은 컬렉션 옵션을 배열 로 createCollection() 메서드에 전달하여 지정할 수 있습니다. 선택적 매개변수의 전체 목록은 API 설명서를 참조하세요.

MongoDB\Database::listCollections() 메서드를 호출하여 데이터베이스의 컬렉션 목록을 쿼리할 수 있습니다. 이 메서드는 데이터베이스의 모든 컬렉션과 관련 메타데이터가 포함된 커서를 반환합니다.

다음 예시 에서는 listCollections() 메서드를 호출하고 반환된 반복자를 반복하여 컬렉션 액세스 및 컬렉션 만들기 예제의 컬렉션을 인쇄합니다.

foreach ($client->test_database->listCollections() as $collectionInfo) {
print_r($collectionInfo) . PHP_EOL;
}
MongoDB\Model\CollectionInfo Object
(
[name] => example_collection
[type] => collection
...
)
MongoDB\Model\CollectionInfo Object
(
[name] => test_collection
[type] => collection
...
)

MongoDB\Database::dropCollection() 메서드를 사용하여 데이터베이스에서 컬렉션을 삭제할 수 있습니다.

다음 예시에서는 test_collection 컬렉션을 삭제합니다.

$client->test_database->dropCollection('test_collection');

경고

컬렉션을 제거하면 컬렉션의 모든 데이터가 삭제됨

데이터베이스에서 컬렉션을 삭제하면 해당 컬렉션 내의 모든 문서와 모든 인덱스가 영구적으로 삭제됩니다.

컬렉션에 데이터가 더 이상 필요하지 않은 경우에만 컬렉션 을 삭제하세요.

읽기 설정 (read preference), 읽기 고려 (read concern) 또는 쓰기 고려 (write concern) 를 지정하여 복제본 세트에서 읽기 및 쓰기 (write) 작업 실행 되는 방식을 제어할 수 있습니다.

기본값 으로 데이터베이스는 MongoDB\Client 인스턴스 에서 읽기 및 쓰기 (write) 설정을 상속합니다. 컬렉션은 selectCollection() 메서드가 호출되는 MongoDB\Client 또는 MongoDB\Database 인스턴스 에서 이러한 설정을 상속합니다. 옵션 배열 을 MongoDB\Client::selectDatabase(), MongoDB\Client::selectCollection() 또는 MongoDB\Database::selectCollection() 메서드에 전달하여 이러한 설정을 변경할 수 있습니다.

읽기 설정 (read preference), 읽기 고려 (read concern) 및 쓰기 고려 (write concern) 설정에 대한 학습 내용은 복제본 세트에서 CRUD 작업 실행 방법 지정 가이드 를 참조하세요.

이 가이드에서 사용되는 메서드 또는 유형에 대해 자세히 알아보려면 다음 API 설명서를 참조하세요.

돌아가기

Stable API