Skip to content

MongoDB

소개

MongoDB는 가장 인기 있는 NoSQL 문서 지향 데이터베이스 중 하나이며, 높은 쓰기 부하 (분석 또는 IoT에 유용) 및 높은 가용성 (자동 장애 조치 기능이 있는 복제본 세트 설정이 쉬움)에 사용됩니다. 또한 수평적 확장성을 위해 데이터베이스를 쉽게 샤딩할 수 있으며, 집계, 텍스트 검색 또는 지리 공간 쿼리를 수행하기 위한 강력한 쿼리 언어를 제공합니다.

SQL 데이터베이스처럼 행 또는 열의 테이블에 데이터를 저장하는 대신, MongoDB 데이터베이스의 각 레코드는 데이터의 바이너리 표현인 BSON으로 설명된 문서입니다. 그런 다음 애플리케이션은 이 정보를 JSON 형식으로 검색할 수 있습니다. 문서, 배열, 포함된 문서 및 바이너리 데이터를 포함한 광범위한 데이터 유형을 지원합니다.

Laravel에서 MongoDB를 사용하기 전에 Composer를 통해 mongodb/laravel-mongodb 패키지를 설치하고 사용하는 것이 좋습니다. laravel-mongodb 패키지는 MongoDB에서 공식적으로 유지 관리하며, MongoDB는 MongoDB 드라이버를 통해 PHP에서 기본적으로 지원되지만 Laravel MongoDB 패키지는 Eloquent 및 기타 Laravel 기능과 더욱 풍부한 통합을 제공합니다.

composer require mongodb/laravel-mongodb

설치

MongoDB 드라이버

MongoDB 데이터베이스에 연결하려면 mongodb PHP 확장 프로그램이 필요합니다. Laravel Herd를 사용하여 로컬에서 개발하거나 php.new를 통해 PHP를 설치한 경우, 이미 시스템에 이 확장 프로그램이 설치되어 있습니다. 하지만 확장 프로그램을 수동으로 설치해야 하는 경우 PECL을 통해 설치할 수 있습니다.

pecl install mongodb

MongoDB PHP 확장 프로그램 설치에 대한 자세한 내용은 MongoDB PHP 확장 프로그램 설치 지침을 확인하십시오.

MongoDB 서버 시작

MongoDB Community Server는 로컬에서 MongoDB를 실행하는 데 사용할 수 있으며 Windows, macOS, Linux 또는 Docker 컨테이너에 설치할 수 있습니다. MongoDB 설치 방법을 알아보려면 공식 MongoDB Community 설치 가이드를 참조하십시오.

MongoDB 서버에 대한 연결 문자열은 .env 파일에서 설정할 수 있습니다.

MONGODB_URI="mongodb://localhost:27017"
MONGODB_DATABASE="laravel_app"

클라우드에서 MongoDB를 호스팅하려면 MongoDB Atlas를 사용하는 것이 좋습니다. 애플리케이션에서 로컬로 MongoDB Atlas 클러스터에 액세스하려면 프로젝트의 IP 액세스 목록에 클러스터의 네트워크 설정에 사용자 IP 주소를 추가해야 합니다.

MongoDB Atlas에 대한 연결 문자열도 .env 파일에서 설정할 수 있습니다.

MONGODB_URI="mongodb+srv://<username>:<password>@<cluster>.mongodb.net/<dbname>?retryWrites=true&w=majority"
MONGODB_DATABASE="laravel_app"

Laravel MongoDB 패키지 설치

마지막으로 Composer를 사용하여 Laravel MongoDB 패키지를 설치합니다.

composer require mongodb/laravel-mongodb
lightbulb

mongodb PHP 확장 프로그램이 설치되어 있지 않으면 이 패키지 설치에 실패합니다. PHP 구성은 CLI와 웹 서버 간에 다를 수 있으므로 두 구성 모두에서 확장 프로그램이 활성화되어 있는지 확인하십시오.

구성

애플리케이션의 config/database.php 구성 파일을 통해 MongoDB 연결을 구성할 수 있습니다. 이 파일 내에서 mongodb 드라이버를 사용하는 mongodb 연결을 추가하십시오.

'connections' => [
'mongodb' => [
'driver' => 'mongodb',
'dsn' => env('MONGODB_URI', 'mongodb://localhost:27017'),
'database' => env('MONGODB_DATABASE', 'laravel_app'),
],
],

기능

구성 완료 후, 애플리케이션에서 mongodb 패키지 및 데이터베이스 연결을 사용하여 다양한 강력한 기능을 활용할 수 있습니다.

  • Eloquent 사용, 모델을 MongoDB 컬렉션에 저장할 수 있습니다. 표준 Eloquent 기능 외에도 Laravel MongoDB 패키지는 임베디드 관계와 같은 추가 기능을 제공합니다. 또한 이 패키지는 MongoDB 드라이버에 직접 액세스할 수 있도록 제공하여 원시 쿼리 및 집계 파이프라인과 같은 작업을 실행하는 데 사용할 수 있습니다.
  • 쿼리 빌더를 사용하여 복잡한 쿼리 작성.
  • mongodb 캐시 드라이버는 만료된 캐시 항목을 자동으로 지우기 위해 TTL 인덱스와 같은 MongoDB 기능을 사용하도록 최적화되었습니다.
  • mongodb 큐 드라이버로 대기열에 있는 작업 디스패치 및 처리.
  • GridFS를 통해 파일 저장, Flysystem용 GridFS 어댑터를 통해.
  • 데이터베이스 연결 또는 Eloquent를 사용하는 대부분의 타사 패키지를 MongoDB와 함께 사용할 수 있습니다.

MongoDB 및 Laravel 사용법에 대해 계속 알아보려면 MongoDB의 빠른 시작 가이드를 참조하십시오.