MongoDB\Database::createCollection()
이 페이지의 내용
정의
MongoDB\Database::createCollection()
collection을 명시적으로 만듭니다.
function createCollection( string $collectionName, array $options = [] ): array|object MongoDB는 새 컬렉션에 문서를 삽입하는 경우와 같이 명령에서 컬렉션을 처음 참조할 때 암시적으로 컬렉션을 생성합니다. 메서드를 사용하거나 에서 db.createCollection() 을 사용하여
MongoDB\Database::createCollection()
특정 옵션이 있는 컬렉션을 명시적으로 만들 수도 MongoDB shell 있습니다.컬렉션을 명시적으로 생성하면 고정 사이즈 컬렉션 을 생성하거나, 문서 유효성 검사 기준 을 지정하거나, storage engine 또는 인덱싱 옵션을 구성할 수 있습니다.
매개변수
$collectionName
: 문자열- 생성할 collection의 이름입니다.
$options
: 배열원하는 옵션을 지정하는 배열입니다.
참고
모든 버전의 MongoDB에서 모든 옵션을 사용할 수 있는 것은 아닙니다. 호환성 고려 사항은 MongoDB 매뉴얼의 create 명령 참조를 참조하세요.
이름유형설명autoIndexId부울_id
필드에 인덱스 자동 생성을 비활성화하려면false
을 지정합니다.중요
복제본 세트의 경우
autoIndexId
을false
로 설정하지 마세요.버전 1.4부터 더 이상 사용되지 않습니다. 이 옵션은 MongoDB 3.2부터 더 이상 사용되지 않습니다. MongoDB 4.0부터 replicated collection(즉, mongod 모드에서
local
데이터베이스 외부의 collection)을 만들 때는 이 옵션을false
로 설정할 수 없습니다.고정부울고정 사이즈 컬렉션을 생성하려면true
을 지정합니다.true
를 지정하는 경우size
옵션에서 최대 크기도 설정해야 합니다.changeStreamPreAndPostImages문서변경 스트림의 사전 및 사후 이미지에 대한 지원을 구성하는 데 사용됩니다. 자세한 내용은 create 명령 문서를 참조하세요.
이 옵션은 MongoDB 6.0부터 사용할 수 있으며 이전 서버 버전에 대해 지정된 경우 실행 시 예외가 발생합니다.
버전 1.13에 새로 추가되었습니다.
클러스터된 인덱스문서데이터 정렬배열|객체데이터 정렬 을 통해 사용자는 string 비교를 위한 언어별 규칙(예: 대소문자 및 악센트 표시 규칙)을 지정할 수 있습니다. 데이터 정렬을 지정할 때
locale
필드는 필수입니다. 다른 모든 데이터 정렬 필드는 선택 사항입니다. 필드에 대한 설명은 데이터 정렬 문서를 참조하세요.comment혼합사용자가 데이터베이스 프로파일러, currentOp 출력 및 로그를 통해 작업을 추적하는 데 도움이 되는 임의의 주석을 지정할 수 있습니다.
이 옵션은 MongoDB 4.4부터 사용할 수 있으며 이전 서버 버전에 대해 지정된 경우 실행 시 예외가 발생합니다.
버전 1.13에 새로 추가되었습니다.
암호화된 필드문서Queryable Encryption을 위한 암호화된 필드를 설명하는 문서입니다. 생략하면
autoEncryption
드라이버 옵션 내의encryptedFieldsMap
옵션이 참조됩니다. 자세한 내용은 MongoDB 매뉴얼의 필드 암호화 및 쿼리 가능성 을 참조하세요.이 옵션은 MongoDB 7.0부터 사용할 수 있으며 이전 서버 버전에 대해 지정된 경우 실행 시 예외가 발생합니다.
버전 1.13에 새로 추가되었습니다.
expireAfterSecondsintegertime series 컬렉션의 문서를 자동으로 삭제하는 데 사용됩니다. 자세한 내용은 create 명령 문서를 참조하세요.
이 옵션은 MongoDB 5.0부터 사용할 수 있으며 이전 서버 버전에 대해 지정된 경우 실행 시 예외가 발생합니다.
버전 1.9에 새로 추가되었습니다.
flagsintegerMMAPv1 storage engine에서
usePowerOf2Sizes
및noPadding
플래그를 설정하는 데만 사용할 수 있습니다.라이브러리는 비트 OR 연산자 와 결합할 수 있는 상수를 제공합니다. 플래그 값을 설정합니다:
MongoDB\Operation\CreateCollection::USE_POWER_OF_2_SIZES
:1
MongoDB\Operation\CreateCollection::NO_PADDING
:2
기본값은
1
입니다.MongoDB 3.0 이상에서는
usePowerOf2Sizes
플래그를 무시합니다. 자세한 내용은 collMod 및 db.createCollection() 을 참조하세요.indexOptionDefaults배열|객체사용자가 컬렉션을 생성할 때 인덱스에 대한 기본 구성을 지정할 수 있습니다.
indexOptionDefaults
옵션은storageEngine
문서를 허용하며, 그 형식은 다음과 같아야 합니다.{ <storage-engine-name>: <options> } 다른 스토리지 엔진을 사용하는 멤버가 있는 복제본 세트를 지원하기 위해 인덱스를 생성할 때 지정된 storage engine 구성의 유효성이 검사되고 복제 중에 oplog 에 기록됩니다.
최대integer고정 사이즈 컬렉션에 허용되는 최대 문서 수입니다.size
옵션이 이 제한보다 우선합니다. 고정 사이즈 컬렉션이 최대 문서 수에 도달하기 전에size
제한에 도달하면 MongoDB는 오래된 문서를 제거합니다.max
제한을 사용하는 것을 선호하는 경우, collection에 필요한size
제한이 최대 문서 수를 포함하기에 충분한지 확인합니다.최대 시간 (MS)integer커서에서 작업을 처리하는 데 걸리는 누적 시간 제한(밀리초)입니다. MongoDB는 중단 지점 이후 가장 빠른 시점에 작업을 중단합니다.
파이프라인배열viewOn
로 지정된 컬렉션 또는 뷰에 적용될 집계 파이프라인 단계로 구성된 배열입니다. 자세한 내용은 create 명령 문서를 참조하세요.버전 1.13에 새로 추가되었습니다.
Session작업과 연결할 클라이언트 세션입니다.
버전 1.3에 새로 추가되었습니다.
sizeinteger고정 사이즈 컬렉션의 최대 크기를 바이트 단위로 지정합니다. 고정 사이즈 컬렉션이 최대 크기에 도달하면 MongoDB는 새 문서를 위한 공간을 확보하기 위해 이전 문서를 제거합니다.size
옵션은 고정 사이즈 컬렉션의 경우 필수이며 다른 컬렉션의 경우 무시됩니다.storageEngine배열|객체WiredTiger 스토리지 엔진에서만 사용할 수 있습니다.
사용자가 컬렉션을 생성할 때 컬렉션별로 스토리지 엔진에 대한 구성을 지정할 수 있습니다.
storageEngine
옵션의 값은 다음과 같은 형식이어야 합니다.{ <storage-engine-name>: <options> } 다른 스토리지 엔진을 사용하는 멤버가 있는 복제본 세트를 지원하기 위해 컬렉션을 생성할 때 지정된 storage engine 구성의 유효성이 검사되고 복제 중에 oplog 에 기록됩니다.
Time Series배열|객체time series 컬렉션을 만들기 위한 옵션이 포함된 객체입니다. 지원되는 옵션은 create 명령 문서를 참조하세요.
이 옵션은 MongoDB 5.0부터 사용할 수 있으며 이전 서버 버전에 대해 지정된 경우 실행 시 예외가 발생합니다.
버전 1.9에 새로 추가되었습니다.
typeMap배열유형 맵 커서에 적용하여 BSON 문서가 PHP 값으로 변환되는 방식을 결정합니다. 기본값은 데이터베이스의 유형 맵입니다.
이는 반환된 명령 결과 문서에 사용됩니다.
유효성 검사 작업문자열유효하지 않은 문서를
error
로 처리할지, 아니면 유효하지 않은 문서를 삽입할 수 있도록 허용하되 위반 사항에 대해warn
으로 처리할지 여부를 결정합니다.중요
문서 유효성 검사는
validationLevel
에 의해 결정된 문서에만 적용됩니다.validationAction
설명"error"
기본값. 문서는 쓰기가 발생하기 전에 유효성 검사를 통과해야 합니다. 그렇지 않으면 쓰기 작업이 실패합니다."warn"
문서가 유효성 검사를 통과할 필요는 없습니다. 문서가 유효성 검사에 실패하면 쓰기 작업은 유효성 검사 실패를 기록합니다.validationLevel문자열업데이트 중에 MongoDB가 기존 문서에 유효성 검사 규칙을 얼마나 엄격하게 적용하는지 결정합니다.
validationLevel
설명"off"
삽입 또는 업데이트에 대한 유효성 검사가 없습니다."strict"
기본값. 모든 삽입 및 모든 업데이트에 유효성 검사 규칙을 적용합니다."moderate"
기존의 유효한 문서에 대한 삽입 및 업데이트에 유효성 검사 규칙을 적용합니다. 기존의 유효하지 않은 문서에 대한 업데이트에는 규칙을 적용하지 마세요.유효성 검사기배열|객체사용자가 컬렉션에 대한 유효성 검사 규칙 또는 표현식 을 지정할 수 있습니다. 자세한 내용은 MongoDB 매뉴얼의 문서 유효성 검사 를 참조하세요.
validator
옵션은 유효성 검사 규칙 또는 표현식을 지정하는 배열을 사용합니다. , ,$nearSphere
$text
및$near
를 제외하고 MongoDB의 쿼리 연산자 와 동일한 연산자를 사용하여$where
표현식을 지정할 수 있습니다.유효성 검사는 업데이트 및 삽입 중에 수행됩니다. 기존 문서는 수정될 때까지 유효성 검사를 거치지 않습니다.
admin
,local
및config
데이터베이스의 컬렉션에는 유효성 검사기를 지정할 수 없습니다.system.*
컬렉션에 대한 유효성 검사기를 지정할 수 없습니다.viewOn문자열뷰를 생성할 소스 컬렉션 또는 뷰의 이름입니다.
이 이름은 collection 또는 뷰의 전체 네임스페이스가 아닙니다(즉, 데이터베이스 이름은 포함되지 않음). 뷰는 소스 collection 또는 뷰와 동일한 데이터베이스에서 만들어야 합니다.
버전 1.13에 새로 추가되었습니다.
쓰기 고려작업에 사용할 고려를 씁니다 . 기본값은 데이터베이스의 쓰기 고려입니다.
Return Values
생성 명령의 결과 문서가 포함된 배열 또는 객체입니다.
오류/예외
옵션이 사용되지만 선택한 서버에서 지원되지 않는 경우 MongoDB\Exception\UnsupportedException
입니다(예: collation
, readConcern
, writeConcern
).
MongoDB\Exception\InvalidArgumentException
매개변수 또는 옵션의 구문 분석과 관련된 오류의 경우입니다.
MongoDB\ 드라이버\Exception\RuntimeException 확장 수준의 다른 오류(예: 연결 오류).
예시
다음 예에서는 문서 유효성 검사 기준을 사용하여 test
데이터베이스에 users
collection을 만듭니다.
$db = (new MongoDB\Client)->test; $result = $db->createCollection('users', [ 'validator' => [ 'username' => ['$type' => 'string'], 'email' => ['$regex' => '@mongodb\.com$'], ], ]); var_dump($result);
이 경우 출력은 다음과 유사합니다:
object(MongoDB\Model\BSONDocument)#11 (1) { ["storage":"ArrayObject":private]=> array(1) { ["ok"]=> float(1) } }
다음도 참조하세요.
MongoDB 매뉴얼에서 명령 참조 생성