AI 에이전트의 경우: 문서 인덱스는 https://www.mongodb.com/ko-kr/docs/llms.txt에서 사용할 수 있으며, 모든 페이지의 마크다운 버전은 어떤 URL 경로에 .md를 추가하여 사용할 수 있습니다.
Docs Menu

연결 옵션

이 가이드에서는 연결, 인증 및 드라이버 옵션에 대해 알아보고 Laravel 애플리케이션의 데이터베이스 연결 구성에서 이를 지정하는 방법을 알아봅니다. 연결 옵션은 데이터베이스 연결을 관리하는 MongoDB PHP 라이브러리로 전달됩니다.

MongoDB PHP 라이브러리에 학습 보려면 MongoDB PHP 라이브러리 문서를 참조하세요.

이 가이드에서는 다음과 같은 주제를 다룹니다.

다음 섹션에서 구성 파일에 일반적인 연결 및 인증 옵션을 추가하는 방법을 알아보세요.

다음 방법 중 하나를 사용하여 Laravel 웹 애플리케이션의 config/database.php 구성 파일 에서 연결 또는 인증 옵션을 지정할 수 있습니다.

  • 설정과 값을 options 배열 항목에 배열 항목으로 추가합니다.

  • dsn 배열 항목에 지정된 연결 string 에 설정과 값을 쿼리 string 매개 변수로 추가합니다.

options 배열에서 옵션을 지정하려면 다음 예와 같이 해당 이름과 값을 배열 항목으로 추가합니다.

'connections' => [
'mongodb' => [
'dsn' => 'mongodb+srv://mongodb0.example.com/',
'driver' => 'mongodb',
'database' => 'sample_mflix',
'options' => [
'appName' => 'myLaravelApp',
'compressors' => 'zlib',
'zlibCompressionLevel' => 7,
],
],
],

연결 string 에서 옵션을 매개 변수로 지정하려면 다음 쿼리 string 구문 형식을 사용합니다.

  • 물음표 문자 ? 를 추가하여 호스트 정보를 매개변수와 구분합니다.

  • 옵션을 <option>=<value> 형식으로 지정하여 추가합니다.

  • 각 옵션과 값 쌍 사이에 앰퍼샌드 문자 & 를 삽입하여 구분합니다.

다음 설정 예제에서는 연결 string 매개변수 구문을 보여줍니다.

'dsn' => 'mongodb+srv://mongodb0.example.com/?appName=myLaravelApp&compressors=zlib',

다음 표에서는 연결 및 인증 옵션 목록과 해당 기본값에 대해 설명합니다.

옵션 이름
허용되는 값
기본값
설명

앱 이름

문자열

none

MongoDB PHP 라이브러리가 핸드셰이크의 일부로 MongoDB deployment 보내는 애플리케이션 이름을 지정합니다.
appName 지정하면 서버 로그에서 해당 애플리케이션 과 관련된 활동을 식별하는 데 도움이 될 수 있습니다.

authMechanism

문자열

none

사용할 인증 메커니즘을 지정합니다. 이 옵션을 지정하지 않으면 드라이버는 기본 인증 메커니즘을 사용합니다. 자세한 내용은 MongoDB Server 매뉴얼의 인증 을 참조하세요.

authMechanismProperties

문자열

none

authMechanism 옵션에 설정된 인증 메커니즘과 관련된 추가 속성을 지정합니다.

authSource

문자열

설명 참조

인증에 사용되는 데이터베이스 지정합니다.
이 옵션의 기본값은 admin SCRAM 기반$external MONGODB-X509 인증 메커니즘의 $external 경우,PLAIN 메커니즘의 경우, 메커니즘의 경우 데이터베이스 이름 또는 입니다.

압축기

쉼표로 구분된 문자열 목록

none

지정된 순서대로 MongoDB와 애플리케이션 간에 전달되는 네트워크 데이터의 양을 줄이기 위해 MongoDB PHP 라이브러리가 사용하는 데이터 압축기를 지정합니다.

connectTimeoutMS

Non-negative integer

10000 (10초)

서버에 연결을 시도할 때 각 기본 TCP 스트림에 전달되는 연결 제한 시간(밀리초)을 지정합니다.

directConnection

부울

false

클러스터의 모든 서버를 검색하여 연결하는 대신 단일 호스트에 직접 연결할지 여부를 지정합니다. 이 설정에 대해 자세히 알아보려면 연결 가이드의 직접 연결 을 참조하세요.

heartbeatFrequencyMS

다음보다 크거나 같은 정수 500

10000 (10초)

각 모니터링 스레드가 서버 검사를 수행하는 사이에 대기하는 시간(밀리초)을 지정합니다.

journal

부울

false

작업이 온디스크 저널로 전파되었음을 확인 요청합니다.

localThresholdMS

Non-negative integer

15

적절한 모든 서버의 가장 짧은 왕복 시간과 비교하여 운전자 와 서버 간의 평균 왕복 시간이 지속될 수 있는 시간을 밀리초 단위로 지정합니다.
값은 0 지연 시간 창 없음을 나타내므로 평균 왕복 시간이 가장 짧은 서버 만 자격이 있습니다.

최대 보관 기간

-1, 또는 다음보다 크거나 같은 정수 90

-1

지정된 작업에 대해 세컨더리 노드 고려할 수 있는 프라이머리 노드 뒤의 최대 지연 시간(초)을 지정합니다.
이 옵션의 값은 이상이어야 90 하며, 그렇지 않으면 작업에서 오류가 발생합니다.-1 값은 최대 지연이 없음을 의미합니다.

readConcernLevel

문자열

none

MongoDB PHP 라이브러리에서 수행하는 작업에 대한 기본 읽기 고려를 지정합니다. 자세한 내용은 MongoDB Server 매뉴얼의 읽기 고려 를 참조하세요.

읽기 설정

문자열

primary

MongoDB PHP 라이브러리가 읽기 작업을 복제본 세트 멤버로 라우팅하는 방법을 지정합니다. 자세한 내용은 MongoDB Server 매뉴얼의 읽기 설정 을 참조하세요.

readPreferenceTags

쉼표로 구분된 키-값 쌍 목록

none

작업에 고려할 복제본 세트 멤버를 지정합니다. 이 키의 각 인스턴스는 별도의 태그 세트입니다. 드라이버는 각 태그가 있는 하나 이상의 서버를 찾을 때까지 각 태그 세트를 확인합니다.

복제본 세트

문자열

none

MongoDB PHP 라이브러리가 연결되는 복제본 세트의 이름을 지정합니다.

retryReads

부울

true

작업이 실패할 경우 MongoDB PHP 라이브러리가 읽기 작업을 다시 시도할지 여부를 지정합니다.

serverSelectionTimeoutMS

Non-negative integer

30000 (30초)

시간이 초과되기 전에 MongoDB PHP 라이브러리가 작업을 위한 서버를 선택하기 위해 기다리는 시간(밀리초)을 지정합니다.

TLS

부울

false

서버 와의 연결에 사용할 MongoDB PHP 라이브러리의 TLS 구성을 지정합니다.
기본값 으로 TLS는 꺼져 있습니다.

tlsAllowInvalidCertificates

부울

false

서버 유효하지 않은 인증서를 제시하는 경우 MongoDB PHP 라이브러리가 오류를 반환할지
여부를 지정합니다.true 애플리케이션 에 보안 취약점이 발생하지 않도록 테스트 환경에서만 이 옵션을 로 설정하는 것이 좋습니다.

tlsCAFile

문자열

설명 참조

MongoDB PHP 라이브러리가 TLS에 사용하는 인증 기관(CA) 파일 의 경로를 지정합니다.
이 옵션을 지정하지 않으면 운전자 크레이트에 있는 Mozilla 루트 인증서를 webpki-roots 사용합니다.

tlsCertificateKeyFile

문자열

none

MongoDB PHP 라이브러리가 ID를 확인하기 위해 서버 에 제공하는 인증서 파일 의 경로를 지정합니다.
이 옵션을 설정하다 하지 않으면 MongoDB PHP 라이브러리는 서버 에서 ID를 확인하려고 시도하지 않습니다.

tlsInsecure

부울

false

서버 유효하지 않은 인증서를 제시하는 경우 MongoDB PHP 라이브러리가 오류를 반환할지
여부를 지정합니다.true 애플리케이션 에 보안 취약점이 발생하지 않도록 테스트 환경에서만 이 옵션을 로 설정하는 것이 좋습니다.

w

음수가 아닌 정수 또는 문자열

none

작업이 특정 수 또는 다양한 서버로 전파되었음을 확인 요청합니다. 자세한
학습 은 서버 매뉴얼의 쓰기 고려를 참조하세요.

wTimeoutMS

Non-negative integer

시간 초과 없음

쓰기 고려의 시간 제한을 밀리초 단위로 지정합니다. 제한 시간 내에 작업이 요청된 레벨로 전파되지 않으면 MongoDB PHP 라이브러리에서 오류를 발생시킵니다.

zlibCompressionLevel

-1에서 9 사이의 정수(포괄적)

-1

해당 압축기를 사용하는 경우 압축의 레벨 필드 지정합니다.zlib
값을 로 -1 설정하면 기본값 압축 수준()이6 선택됩니다.
값을 0 설정하면 압축이 없는 것으로 지정되고, 값을 9 설정하면 최대 압축이 지정됩니다.

연결 옵션의 전체 목록을 보려면 MongoDB Server 매뉴얼의 연결 문자열 가이드에서 연결 string 옵션 섹션을 참조하세요. 페이지 오른쪽에 있는 Select your language 드롭다운 메뉴에서 PHP 를 선택합니다.

드라이버 옵션은 Laravel 애플리케이션과 MongoDB 간의 연결 및 모든 작업을 관리하는 MongoDB PHP 라이브러리의 동작을 수정합니다.

Laravel 웹 애플리케이션의 config/database.php 구성 파일에서 드라이버 옵션을 지정할 수 있습니다. 드라이버 옵션을 추가하려면 다음 예와 같이 driver_options 배열 항목에 설정과 값을 배열 항목으로 추가합니다.

'connections' => [
'mongodb' => [
'dsn' => 'mongodb+srv://mongodb0.example.com/',
'driver' => 'mongodb',
'database' => 'sample_mflix',
'driver_options' => [
'serverApi' => 1,
'allow_invalid_hostname' => false,
],
],
]

드라이버 옵션 목록은 MongoDB PHP 라이브러리 문서의 $driverOptions: 배열 섹션을 참조하세요.

Laravel MongoDB v5.0부터, id 는 MongoDB 문서에서 _id 필드 의 별칭이며, 라이브러리는 데이터를 쿼리하고 저장할 때 최상위 필드와 포함된 필드 모두에 대해 id_id 로 자동 변환합니다.

Laravel MongoDB v5.3 이상을 사용하는 경우 내장된 문서에 대해 id_id 로 자동 변환하지 않도록 설정할 수 있습니다. 이렇게 하려면 다음 작업 중 하나를 수행합니다.

  1. config/database.php 파일 에서 rename_embedded_id_field 설정을 false 로 설정합니다.

    'connections' => [
    'mongodb' => [
    'dsn' => 'mongodb+srv://mongodb0.example.com/',
    'driver' => 'mongodb',
    'database' => 'sample_mflix',
    'rename_embedded_id_field' => false,
    // Other settings
    ],
    ],
  2. 애플리케이션 의 setRenameEmbeddedIdField() 메서드에 false 을 전달합니다.

    DB::connection('mongodb')->setRenameEmbeddedIdField(false);

중요

이 옵션은 기존 문서 스키마와의 이전 버전과의 호환성을 제공하기 위해서만 사용하는 것이 좋습니다. 새 프로젝트에서는 내장된 문서의 필드 이름에 id 을(를) 사용하지 않도록 하여 Laravel MongoDB의 기본값 동작을 유지할 수 있습니다.