MongoDB\Driver\Manager::__construct
(mongodb >=1.0.0)
MongoDB\Driver\Manager::__construct — 새 MongoDB 관리자 생성
설명
final public MongoDB\Driver\Manager::__construct(string $uri
= "mongodb://127.0.0.1/", array $uriOptions
= array(), array $driverOptions
= array())
지정된 옵션을 사용하여 새 MongoDB\Driver\Manager 개체를 생성합니다.
참고: » 서버 검색 및 모니터링 사양에 따라 이 생성자는 I/O를 수행하지 않습니다. 연결은 첫 번째 작업이 실행될 때 요청 시 초기화됩니다.
참고: 연결 문자열 또는 uriOptions
매개변수를 통해 SSL 또는 TLS URI 옵션을 지정할 때 드라이버는 해당 연결에 대해 암시적으로 TLS를 활성화합니다. 이를 방지하려면 tls
옵션을 명시적으로 비활성화하거나 TLS 옵션을 지정하지 마십시오.
참고: Unix 플랫폼에서 MongoDB 드라이버는 exec()를 호출하지 않고 fork() 시스템 호출을 사용하는 스크립트에 민감합니다. 사용자는 분기된 자식 프로세스에서 MongoDB\Driver\Manager 인스턴스를 재사용하지 않는 것이 좋습니다.
매개변수
uri
-
A » mongodb:// 연결 URI:
mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[defaultAuthDb][?options]]
지원되는 URI 옵션에 대한 자세한 내용은 MongoDB 설명서의 » 연결 문자열 옵션을 참조하세요. PHP 드라이버는 연결 풀을 구현하지 않으므로 » 연결 풀 옵션은 지원되지 않습니다.
uri
는 URL이므로 구성 요소의 모든 특수 문자는 » RFC 3986에 따라 URL로 인코딩되어야 합니다. 이는 특히 사용자 이름 및 비밀번호와 관련이 있으며@
,:
또는%
와 같은 특수 문자가 포함될 수 있습니다. Unix 도메인 소켓을 통해 연결할 때 소켓 경로는 슬래시와 같은 특수 문자를 포함할 수 있으며 인코딩해야 합니다. rawurlencode() 함수는 URI의 구성 부분을 인코딩하는 데 사용할 수 있습니다.defaultAuthDb
구성 요소는 사용자의 자격 증명과 연결된 데이터베이스 이름을 지정하는 데 사용할 수 있습니다. 그러나 지정된 경우authSource
URI 옵션이 우선 적용됩니다.defaultAuthDb
와authSource
를 모두 지정하지 않으면 기본적으로admin
데이터베이스가 사용됩니다.defaultAuthDb
구성 요소는 사용자 자격 증명이 없으면 효과가 없습니다. uriOptions
- 추가 » 연결 문자열 옵션은
uri
매개변수에서 이름이 같은 모든 옵션을 덮어씁니다.uriOptions
Option Type 설명 appname string MongoDB 3.4+에는 연결 클라이언트가 제공하는 메타데이터로 연결에 주석을 달 수 있는 기능이 있습니다. 이 메타데이터는 연결 설정 시 서버의 로그에 포함되며 데이터베이스 프로파일링이 활성화된 경우 느린 쿼리 로그에도 기록됩니다. 이 옵션은 메타데이터에 포함될 애플리케이션 이름을 지정하는 데 사용할 수 있습니다. 값의 길이는 128자를 초과할 수 없습니다.
authMechanism string MongoDB가 연결을 인증하는 데 사용할 인증 메커니즘입니다. 추가 세부정보 및 지원되는 값 목록은 MongoDB 설명서의 » 인증 옵션을 참조하세요. authMechanismProperties array 선택한 인증 메커니즘의 속성입니다. 추가 세부정보 및 지원되는 속성 목록은 » Driver Authentication Specification을 참조하세요. 참고: URI 문자열에 지정되지 않은 경우 이 옵션은 키/값 쌍의 배열로 표현됩니다. 이 배열의 키와 값은 문자열이어야 합니다.
authSource string 사용자의 자격 증명과 연결된 데이터베이스 이름입니다. 기본값은 연결 URI의 데이터베이스 구성 요소 또는 둘 다 지정되지 않은 경우 admin
데이터베이스입니다.자격 증명 저장소를 다른 서비스(예: GSSAPI)에 위임하는 인증 메커니즘의 경우
"$external"
이어야 합니다.canonicalizeHostname bool true
인 경우 드라이버는 SASL을 통해 인증하기 전에 서버 IP 주소의 실제 호스트 이름을 확인합니다. 일부 기본 GSSAPI 계층은 이미 이 작업을 수행하지만 해당 구성(예:krb.conf
)에서 기능이 비활성화될 수 있습니다. 기본값은false
입니다.이 옵션은
"authMechanismProperties"
URI 옵션의"CANONICALIZE_HOST_NAME"
속성에 대해 더 이상 사용되지 않는 별칭입니다.compressors string 클라이언트가 사용하려는 압축기의 우선 순위가 지정되고 쉼표로 구분된 목록입니다. 메시지는 클라이언트와 서버가 공통의 압축기를 공유하는 경우에만 압축되며, 각 방향에서 사용되는 압축기는 서버 또는 드라이버의 개별 구성에 따라 다릅니다. 자세한 내용은 » 드라이버 압축 사양을 참조하세요. connectTimeoutMS int 시간이 초과되기 전에 연결을 시도하는 시간(밀리초)입니다. 기본값은 10,000밀리초입니다. directConnection bool 이 옵션은 연결 문자열에 단일 호스트만 제공되는 경우 복제본 세트 검색 동작을 제어하는 데 사용할 수 있습니다. 기본적으로 연결 문자열에 단일 구성원을 제공하면 "replicaSet"
URI 옵션이 생략되거나 존재하는지 여부에 따라 직접 연결을 설정하거나 추가 구성원을 검색합니다. 강제 검색을 수행하려면false
를 지정하고("replicaSet"
이 생략된 경우) 직접 연결을 수행하려면true
를 지정합니다("replicaSet"
이 있는 경우).gssapiServiceName string Kerberos화된 MongoDB 인스턴스에 연결할 때 Kerberos 서비스 이름을 설정합니다. 이 값은 MongoDB 인스턴스에 설정된 서비스 이름과 일치해야 합니다(즉, » saslServiceName 서버 매개변수). 기본값은 "mongodb"
입니다.이 옵션은
"authMechanismProperties"
URI 옵션의"SERVICE_NAME"
속성에 대해 더 이상 사용되지 않는 별칭입니다.heartbeatFrequencyMS int 드라이버가 MongoDB 토폴로지를 확인하는 간격을 밀리초 단위로 지정합니다. 이전 확인의 끝에서 다음 확인이 시작될 때까지 계산됩니다. 기본값은 60,000밀리초입니다. » 서버 검색 및 모니터링 사양에 따라 이 값은 500밀리초보다 작아서는 안 됩니다.
journal bool 기본 쓰기 문제의 journal
매개변수에 해당합니다.true
이면 쓰기 작업이 저널에 기록되었다는 MongoDB의 승인이 필요합니다. 자세한 내용은 MongoDB\Driver\WriteConcern을 참조하세요.loadBalanced bool 드라이버가 로드 밸런서를 통해 MongoDB 클러스터에 연결하는지 여부를 지정합니다. true
인 경우 드라이버는 단일 호스트(연결 문자열 또는 SRV 조회로 지정)에만 연결할 수 있으며"directConnection"
URI 옵션은true
일 수 없으며"replicaSet"
URI 옵션은 생략해야 합니다. 기본값은false
입니다.localThresholdMS int 읽기 기본 설정을 해결하는 동안 여러 적절한 MongoDB 인스턴스 중에서 선택하기 위한 지연 시간(밀리초)의 크기입니다. 기본값은 15밀리초입니다. maxStalenessSeconds int 읽기 기본 설정의 "maxStalenessSeconds"
에 해당합니다. 클라이언트가 읽기 작업에 사용을 중지하기 전에 보조가 얼마나 오래될 수 있는지를 초 단위로 지정합니다. 기본적으로 최대 부실은 없으며 클라이언트는 읽기 작업을 지시할 위치를 선택할 때 보조 지연을 고려하지 않습니다. 자세한 내용은 MongoDB\Driver\ReadPreference를 참조하세요.지정된 경우 최대 비활성은
MongoDB\Driver\ReadPreference::SMALLEST_MAX_STALENESS_SECONDS
(즉, 90초)보다 크거나 같은 부호 있는 32비트 정수여야 합니다.password string 인증 중인 사용자의 비밀번호입니다. 이 옵션은 암호에 특수 문자가 포함되어 있는 경우에 유용하며 그렇지 않으면 연결 URI에 대해 URL로 인코딩되어야 합니다. readConcernLevel string 읽기 관심사의 level
매개변수에 해당합니다. 읽기 격리 수준을 지정합니다. 자세한 내용은 MongoDB\Driver\ReadConcern을 참조하세요.readPreference string 읽기 기본 설정의 mode
매개변수에 해당합니다. 기본값은 "기본"입니다. 자세한 내용은 MongoDB\Driver\ReadPreference를 참조하세요.readPreferenceTags array 읽기 기본 설정의 tagSets
매개변수에 해당합니다. 태그 세트를 사용하면 복제본 세트의 특정 구성원에 대한 읽기 작업을 대상으로 할 수 있습니다. 자세한 내용은 MongoDB\Driver\ReadPreference를 참조하세요.참고: URI 문자열에 지정되지 않은 경우 이 옵션은 MongoDB\Driver\ReadPreference::__construct()에서 예상하는 형식과 일치하는 배열로 표현됩니다.
replicaSet string 복제본 세트의 이름을 지정합니다. retryReads bool 드라이버가 일시적인 네트워크 오류 또는 복제본 세트 선택으로 인해 실패한 특정 읽기 작업을 자동으로 재시도해야 하는지 여부를 지정합니다. 이 기능을 사용하려면 MongoDB 3.6 이상이 필요합니다. 기본값은 true
입니다.자세한 내용은 » Retryable Reads Specification을 참조하세요.
retryWrites bool 드라이버가 일시적인 네트워크 오류 또는 복제본 세트 선택으로 인해 실패한 특정 쓰기 작업을 자동으로 재시도해야 하는지 여부를 지정합니다. 이 기능을 사용하려면 MongoDB 3.6 이상이 필요합니다. 기본값은 true
입니다.자세한 내용은 » Retryable Writes를 참조하세요.
safe bool true
인 경우 기본 쓰기 문제의w
매개변수에 대해1
을 지정합니다.false
이면0
이 지정됩니다. 자세한 내용은 MongoDB\Driver\WriteConcern을 참조하세요.이 옵션은 더 이상 사용되지 않으며 사용해서는 안 됩니다.
serverSelectionTimeoutMS int 예외가 발생하기 전에 서버 선택을 차단할 시간(밀리초)을 지정합니다. 기본값은 30,000밀리초입니다. serverSelectionTryOnce bool true
인 경우 드라이버가 서버 선택이 실패한 후 MongoDB 배포를 정확히 한 번 검색한 다음 서버를 선택하거나 오류를 발생시키도록 지시합니다.false
인 경우 드라이버는"serverSelectionTimeoutMS"
값까지 서버를 차단하고 검색합니다. 기본값은true
입니다.socketCheckIntervalMS int 소켓이 최근에 사용되지 않은 경우 드라이버는 작업에 사용하기 전에 hello
명령을 통해 소켓을 확인해야 합니다. 기본값은 5,000밀리초입니다.socketTimeoutMS int 시간이 초과되기 전에 소켓에서 송신 또는 수신을 시도하는 시간(밀리초)입니다. 기본값은 300,000밀리초(즉, 5분)입니다. ssl bool true
인 경우 TLS/SSL과의 연결을 시작합니다. 기본값은false
입니다.이 옵션은
"tls"
URI 옵션에 대해 더 이상 사용되지 않는 별칭입니다.tls bool true
인 경우 TLS/SSL과의 연결을 시작합니다. 기본값은false
입니다.tlsAllowInvalidCertificates bool 서버의 TLS 인증서가 유효하지 않은 경우 드라이버에서 오류가 발생하는지 여부를 지정합니다. 기본값은 false
입니다.경고 인증서 유효성 검사를 비활성화하면 취약점이 생성됩니다.
tlsAllowInvalidHostnames bool 서버의 호스트 이름과 TLS 인증서로 지정된 호스트 이름이 일치하지 않을 때 드라이버에서 오류가 발생하는지 여부를 지정합니다. 기본값은 false
입니다.경고 인증서 유효성 검사를 비활성화하면 취약점이 생성됩니다. 잘못된 호스트 이름을 허용하면 드라이버가 » man-in-the-middle attack에 노출될 수 있습니다.
tlsCAFile string TLS 연결을 만들 때 신뢰할 수 있는 것으로 간주되는 단일 또는 번들 인증 기관이 있는 파일 경로입니다. 시스템 인증서 저장소가 기본적으로 사용됩니다. tlsCertificateKeyFile string 클라이언트 인증서 파일 또는 클라이언트 개인 키 파일의 경로입니다. 둘 다 필요한 경우 파일을 연결해야 합니다. tlsCertificateKeyFilePassword string TLS 연결에 사용할 클라이언트 개인 키(예: "tlsCertificateKeyFile"
URI 옵션)를 해독하기 위한 암호입니다.tlsDisableCertificateRevocationCheck bool true
인 경우 드라이버는 인증서 해지 상태(예: OCSP, CRL) 확인을 시도하지 않습니다. 기본값은false
입니다.tlsDisableOCSPEndpointCheck bool true
인 경우 드라이버는 필요한 경우 OCSP 응답자 끝점에 연결을 시도하지 않습니다(예: OCSP 응답이 스테이플링되지 않음). 기본값은false
입니다.tlsInsecure bool TLS 제약 조건을 최대한 완화합니다. 이 옵션에 대해 true
를 지정하면"tlsAllowInvalidCertificates"
및"tlsAllowInvalidHostnames"
URI 옵션 모두에 대해true
를 지정하는 것과 동일한 효과가 있습니다. 기본값은false
입니다.경고 인증서 유효성 검사를 비활성화하면 취약점이 생성됩니다. 잘못된 호스트 이름을 허용하면 드라이버가 » man-in-the-middle attack에 노출될 수 있습니다.
username string 인증 중인 사용자의 사용자 이름입니다. 이 옵션은 사용자 이름에 특수 문자가 포함되어 있는 경우에 유용하며 그렇지 않으면 연결 URI에 대해 URL로 인코딩되어야 합니다. w int|string 기본 쓰기 문제의 w
매개변수에 해당합니다. 자세한 내용은 MongoDB\Driver\WriteConcern을 참조하세요.wTimeoutMS int|string 기본 쓰기 문제의 wtimeout
매개변수에 해당합니다. 쓰기 문제에 대한 시간 제한을 밀리초 단위로 지정합니다. 자세한 내용은 MongoDB\Driver\WriteConcern을 참조하세요.지정된 경우
wTimeoutMS
는 0보다 크거나 같은 부호 있는 32비트 정수여야 합니다.zlibCompressionLevel int zlib 압축기에 사용할 압축 수준을 지정합니다. zlib
가"compressors"
URI 옵션에 포함되지 않은 경우 이 옵션은 효과가 없습니다. 자세한 내용은 » Driver Compression Specification을 참조하세요. driverOptions
-
driverOptions
Option Type 설명 allow_invalid_hostname bool true
인 경우 호스트 이름 유효성 검사를 비활성화합니다. 기본값은false
입니다.잘못된 호스트 이름을 허용하면 드라이버가 » man-in-the-middle attack에 노출될 수 있습니다.
이 옵션은
"tlsAllowInvalidHostnames"
URI 옵션에 대해 더 이상 사용되지 않는 별칭입니다.autoEncryption array 자동 클라이언트 측 필드 수준 암호화를 활성화하는 옵션을 제공합니다. 다음 옵션이 지원됩니다. 자동 암호화 옵션
Option Type 설명 keyVaultClient MongoDB\Driver\Manager Manager는 데이터 키 쿼리를 별도의 MongoDB 클러스터로 라우팅하는 데 사용됩니다. 기본적으로 현재 Manager 및 클러스터가 사용됩니다. keyVaultNamespace string 암호화 및 암호 해독에 사용되는 모든 데이터 키가 포함된 컬렉션을 나타내는 정규화된 네임스페이스(예: "databaseName.collectionName"
)입니다.kmsProviders array 데이터 키를 암호화하는 데 사용되는 하나 이상의 KMS 공급자에 대한 구성이 포함된 문서입니다. 지원되는 공급자에는 "aws"
,"azure"
,"gcp"
및"local"
이 포함되며 하나 이상을 지정해야 합니다."aws"
의 형식은 다음과 같습니다.aws: { accessKeyId: <string>, secretAccessKey: <string> }
"azure"
의 형식은 다음과 같습니다.azure: { tenantId: <string>, clientId: <string>, clientSecret: <string>, identityPlatformEndpoint: <optional string> // Defaults to "login.microsoftonline.com" }
"gcp"
의 형식은 다음과 같습니다.gcp: { email: <string>, privateKey: <base64 string>|<MongoDB\BSON\Binary>, endpoint: <optional string> // Defaults to "oauth2.googleapis.com" }
"kmip"
의 형식은 다음과 같습니다.kmip: { endpoint: <string> }
"local"
의 형식은 다음과 같습니다.local: { // 96-byte master key used to encrypt/decrypt data keys key: <base64 string>|<MongoDB\BSON\Binary> }
tlsOptions array 하나 이상의 KMS 공급자에 대한 TLS 구성이 포함된 문서입니다. 지원되는 공급자는 "aws"
,"azure"
,"gcp"
및"kmip"
입니다. 모든 공급자는 다음 옵션을 지원합니다.<provider>: { tlsCaFile: <optional string>, tlsCertificateKeyFile: <optional string>, tlsCertificateKeyFilePassword: <optional string> }
schemaMap array 암호화를 구성하는 데 사용되는 로컬 JSON 스키마를 지정할 수 있습니다. 참고:
schemaMap
을 제공하면 서버에서 가져온 JSON 스키마에 의존하는 것보다 더 많은 보안이 제공됩니다. 클라이언트가 암호화해야 하는 암호화되지 않은 데이터를 보내도록 속일 수 있는 잘못된 JSON 스키마를 광고하는 악의적인 서버로부터 보호합니다.참고:
schemaMap
에 제공된 스키마는 클라이언트 측 암호화를 위한 자동 암호화 구성에만 적용됩니다. JSON 스키마의 다른 유효성 검사 규칙은 드라이버에서 적용되지 않으며 오류가 발생합니다.bypassAutoEncryption bool 이 옵션을 true
로 설정하면mongocryptd
가 자동으로 생성되지 않습니다. 이것은 자동 암호화를 비활성화하는 데 사용됩니다.extraOptions array extraOptions
는mongocryptd
프로세스와 관련됩니다. 다음 옵션이 지원됩니다.<provider>: { mongocryptdURI: <optional string>, // Defaults to "mongodb://localhost:27027" mongocryptdBypassSpawn: <optional string>, // Defaults to false mongocryptdSpawnPath: <optional string>, // Defaults to empty string and uses default system paths mongocryptdSpawnArgs: <optional array of strings> // Defaults to [ "--idleShutdownTimeoutSecs=60" ] }
자세한 내용은 » 클라이언트 측 암호화 사양을 참조하세요.
참고: 자동 암호화는 컬렉션 작업에만 적용되는 엔터프라이즈 전용 기능입니다. 데이터베이스 또는 보기에 대한 작업에는 자동 암호화가 지원되지 않으며, 건너뛰지 않은 작업은 오류가 발생합니다. 모든 작업에 대해 자동 암호화를 우회하려면
autoEncryption
에서bypassAutoEncryption=true
를 설정하십시오. 허용되는 작업에 대한 자세한 내용은 » Client-Side Encryption Specification을 참조하세요.ca_dir string 올바르게 해시된 인증서 디렉토리의 경로입니다. 시스템 인증서 저장소가 기본적으로 사용됩니다. ca_file string TLS 연결을 만들 때 신뢰할 수 있는 것으로 간주되는 단일 또는 번들 인증 기관이 있는 파일 경로입니다. 시스템 인증서 저장소가 기본적으로 사용됩니다. 이 옵션은
"tlsCAFile"
URI 옵션에 대해 더 이상 사용되지 않는 별칭입니다.context resource 드라이버 옵션 또는 이에 상응하는 URI 옵션(있는 경우)이 지정되지 않은 경우 대체로 사용할 SSL context options입니다. 드라이버는 기본 스트림 컨텍스트(예: stream_context_get_default())를 참조하지 않습니다. 다음 컨텍스트 옵션이 지원됩니다. SSL 컨텍스트 옵션 대체
Driver option Context option (fallback) ca_dir capath ca_file cafile pem_file local_cert pem_pwd passphrase weak_cert_validation allow_self_signed 이 옵션은 이전 버전과의 호환성을 위해 지원되지만 더 이상 사용되지 않는 것으로 간주해야 합니다.
crl_file string 인증서 해지 목록 파일의 경로입니다. disableClientPersistence bool true
인 경우 이 Manager는 새 libmongoc 클라이언트를 사용하며 다른 Manager 개체와 공유되거나 지속되지 않습니다. 이 Manager 개체가 해제되면 해당 클라이언트가 소멸되고 모든 연결이 닫힙니다. 기본값은false
입니다.참고: 클라이언트 지속성을 비활성화하는 것은 일반적으로 권장되지 않습니다.
driver array 사용자 지정 드라이버가 서버 핸드셰이크에 자체 메타데이터를 추가할 수 있습니다. 기본적으로 드라이버는 핸드셰이크에서 자체 이름, 버전 및 플랫폼(예: PHP 버전)을 제출합니다. 사용자 정의 드라이버는 이 배열의 "name"
,"version"
및"platform"
키에 대한 문자열을 지정할 수 있으며, 이는 핸드셰이크 문서의 각 필드에 추가됩니다.참고: 핸드셰이크 정보는 512바이트로 제한됩니다. 드라이버는 이 512바이트 문자열에 맞게 핸드셰이크 데이터를 자릅니다. 드라이버와 ODM은 자체 메타데이터를 간결하게 유지하는 것이 좋습니다.
pem_file string 클라이언트 인증에 사용할 PEM 인코딩 인증서의 경로입니다. 이 옵션은
"tlsCertificateKeyFile"
URI 옵션에 대해 더 이상 사용되지 않는 별칭입니다.pem_pwd string PEM으로 인코딩된 인증서의 암호(해당되는 경우). 이 옵션은
"tlsCertificateKeyFilePassword"
URI 옵션에 대해 더 이상 사용되지 않는 별칭입니다.serverApi MongoDB\Driver\ServerApi 이 옵션은 관리자에 대한 서버 API 버전을 선언하는 데 사용됩니다. 생략하면 API 버전이 선언되지 않습니다. weak_cert_validation bool true
인 경우 인증서 유효성 검사를 비활성화합니다. 기본값은false
이 옵션은
"tlsAllowInvalidHostnames"
URI 옵션에 대해 더 이상 사용되지 않는 별칭입니다.
오류/예외
- 인수 구문 분석 오류에 대해 MongoDB\Driver\Exception\InvalidArgumentException을 던집니다.
- uri 형식이 유효하지 않은 경우 MongoDB\Driver\Exception\RuntimeException을 던집니다.
변경 로그
버전 | 설명 |
---|---|
PECL mongodb 1.12.0 | KMIP는 이제 클라이언트 측 암호화를 위한 KMS 공급자로 지원되며 "autoEncryption" 드라이버 옵션의 "kmsProviders" 필드에서 구성할 수 있습니다. 또한 이제 "autoEncryption" 드라이버 옵션의 "tlsOptions" 필드에서 KMS 공급자에 대한 TLS 옵션을 구성할 수 있습니다. |
PECL mongodb 1.11.0 | "loadBalanced" URI 옵션을 추가했습니다. |
PECL mongodb 1.10.0 | "disableClientPersistence" 드라이버 옵션을 추가했습니다.
Azure 및 GCP는 이제 클라이언트 쪽 암호화를 위한 KMS 공급자로 지원되며 |
PECL mongodb 1.8.0 | "directConnection" ,
"tlsDisableCertificateRevocationCheck" 및 "tlsDisableOCSPEndpointCheck" URI 옵션을 추가했습니다.
|
PECL mongodb 1.7.0 | "autoEncryption" 드라이버 옵션을 추가했습니다.
|
PECL mongodb 1.6.0 | "retryReads" , "tls" ,
"tlsAllowInvalidCertificates" ,
"tlsAllowInvalidHostnames" ,
"tlsCAFile" ,
"tlsCertificateKeyFile" ,
"tlsCertificateKeyFilePassword" , 및 "tlsInsecure" URI 옵션을 추가했습니다.
연결 문자열 또는 |
PECL mongodb 1.5.0 | "wtimeoutMS" 는 이제 항상 유효성이 검사되고 쓰기 문제에 적용됩니다. 이전에는 시간 제한이 복제에만 적용되기 때문에 "w" 가 <= 1이면 옵션이 무시되었습니다. |
PECL mongodb 1.4.0 | "compressors" ,
"retryWrites" 및 "zlibCompressionLevel" URI 옵션을 추가했습니다. |
PECL mongodb 1.3.0 | uriOptions 인수는 이제 "authMechanism" 및 "authMechanismProperties" 옵션을 허용합니다. 이전에는 이러한 옵션이 uri 인수에서만 지원되었습니다. |
PECL mongodb 1.2.0 | uri 인수의 기본값은 "mongodb://127.0.0.1/" 입니다. 기본 포트는 27017 로 유지됩니다.
PHP Streams API는 더 이상 소켓 통신에 사용되지 않습니다. |
PECL mongodb 1.1.0 | uri 인수는 선택 사항이며 기본값은 "mongodb://localhost:27017/" 입니다. |
Examples
예제 #1 MongoDB\Driver\Manager::__construct() 기본 예제
독립형 MongoDB 노드에 연결:
<?php
$manager = new MongoDB\Driver\Manager("mongodb://example.com:27017");
?>
Unix 도메인 소켓을 통해 독립형 MongoDB 노드에 연결합니다. 소켓 경로는 슬래시와 같은 특수 문자를 포함할 수 있으며 rawurlencode()로 인코딩해야 합니다.
<?php
$manager = new MongoDB\Driver\Manager("mongodb://" . rawurlencode("/tmp/mongodb-27017.sock"));
?>
복제본 세트에 연결:
<?php
$manager = new MongoDB\Driver\Manager("mongodb://rs1.example.com,rs2.example.com/?replicaSet=myReplicaSet");
?>
Connecting to a sharded cluster (i.e. one or more mongos instances):
<?php
$manager = new MongoDB\Driver\Manager("mongodb://mongos1.example.com,mongos2.example.com/");
?>
특정 사용자 및 데이터베이스에 대한 인증 자격 증명을 사용하여 MongoDB에 연결:
<?php
$manager = new MongoDB\Driver\Manager("mongodb://myusername:mypassword@example.com/?authSource=databaseName");
?>
사용자 이름 또는 비밀번호에 특수 문자(예: @
, :
, %
)가 포함된 특정 사용자 및 데이터베이스에 대한 인증 자격 증명을 사용하여 MongoDB에 연결합니다. 다음 예에서 비밀번호 문자열 myp@ss:w%rd
는 수동으로 이스케이프되었습니다. 그러나 rawurlencode()는 특수 문자를 포함할 수 있는 URI 구성 요소를 이스케이프하는 데 사용할 수도 있습니다.
<?php
$manager = new MongoDB\Driver\Manager("mongodb://myusername:myp%40ss%3Aw%25rd@example.com/?authSource=databaseName");
?>
X509 인증으로 MongoDB에 연결:
<?php
$manager = new MongoDB\Driver\Manager(
"mongodb://example.com/?ssl=true&authMechanism=MONGODB-X509",
[],
[
"pem_file" => "/path/to/client.pem",
]
);
?>