MongoDB\Database::createCollection()
Definição
MongoDB\Database::createCollection()
Cria explicitamente uma collection.
function createCollection( string $collectionName, array $options = [] ): array|object O MongoDB cria coleções implicitamente quando você faz referência à coleção pela primeira vez em um comando, como ao inserir um documento em uma nova coleção. Você também pode criar explicitamente uma coleção com opções específicas usando o método
MongoDB\Database::createCollection()
ou usando db.createCollection() no shell do MongoDB.A criação explícita de collections permite que você crie capped collections, especifique critérios de validação de documentos ou configure seu storage engine ou opções de indexação.
Parâmetros
$collectionName
: string- O nome da coleção a ser criada.
$options
: arrayUma array especificando as opções desejadas.
Observação
Nem todas as opções estão disponíveis em todas as versões do MongoDB. Consulte a referência de comando de criação no manual do MongoDB para obter considerações de compatibilidade.
NomeTipoDescriçãoautoIndexIdbooleanoEspecifique
false
para desabilitar a criação automática de um índice no campo_id
.Importante
Para conjuntos de réplicas, não defina
autoIndexId
comofalse
.Descontinuado desde a versão 1.4: Esta opção foi descontinuada desde o MongoDB 3.2. A partir do MongoDB 4.0, essa opção não pode ser
false
ao criar uma coleção replicada (ou seja, uma coleção fora do banco de dadoslocal
em qualquer modo mongod).cappedbooleanoPara criar uma collection limitada, especifiquetrue
. Se você especificartrue
, também deve definir um tamanho máximo na opçãosize
.changeStreamPreAndPostImagesdocumentoUsado para configurar o suporte para pré e pós-imagens em change streams. Consulte a documentação do comando de criação para obter mais informações.
Esta opção está disponível a partir do MongoDB 6.0 e resultará em uma exceção no tempo de execução se especificada para uma versão de servidor mais antiga.
Novidade na versão 1.13.
Índices AgrupadodocumentoUma especificação de índice agrupado. Consulte Clustered Collections ou a documentação do comando create para obter mais informações.
Esta opção está disponível a partir do MongoDB 5.3 e resultará em uma exceção no tempo de execução se especificada para uma versão de servidor mais antiga.
Novidade na versão 1.13.
agrupamentoarray|objectA colocação permite que os usuários especifiquem regras específicas do idioma para comparação de string , como regras para letras maiúsculas e marcas de acento. Ao especificar agrupamento, o campo
locale
é obrigatório; todos os outros campos de agrupamento são opcionais. Para obter descrições dos campos, consulte Documento de agrupamento.commentmistoPermite ao usuário especificar um comentário arbitrário para ajudar a rastrear a operação por meio do profiler de banco de dados, da saída currentOp e dos registros.
Esta opção está disponível desde o MongoDB 4.4 e resultará em uma exceção no momento da execução se for especificada para uma versão mais antiga do servidor.
Novidade na versão 1.13.
Campos criptografadosdocumentoDocumento que descreve campos criptografados para Queryable Encryption. Se omitida, a opção
encryptedFieldsMap
dentro da opção de driverautoEncryption
será consultada. Consulte Criptografia de campo e consultabilidade no manual do MongoDB para obter mais informações.Esta opção está disponível a partir do MongoDB 7.0 e resultará em uma exceção no tempo de execução se especificada para uma versão de servidor mais antiga.
Novidade na versão 1.13.
expireAfterSecondsinteiroUsado para excluir automaticamente documentos em coleções de séries temporais. Consulte a documentação do comando de criação para obter mais informações.
Esta opção está disponível a partir do MongoDB 5.0 e resultará em uma exceção no tempo de execução se especificada para uma versão de servidor mais antiga.
Novidades na versão 1.9.
flagsinteiroDisponível apenas para o storage engine MMAPv1 para definir os sinalizadores
usePowerOf2Sizes
enoPadding
.A biblioteca fornece constantes que você pode combinar com um operador bitwise OR para definir os valores do sinalizador:
MongoDB\Operation\CreateCollection::USE_POWER_OF_2_SIZES
:1
MongoDB\Operation\CreateCollection::NO_PADDING
:2
Padrão é
1
.O MongoDB 3.0 e posterior ignora o sinalizador
usePowerOf2Sizes
. Consulte collMod e db.createCollection() para obter mais informações.indexOptionDefaultsarray|objectPermite que os usuários especifiquem uma configuração padrão para índices ao criar uma coleção.
A opção
indexOptionDefaults
aceita um documentostorageEngine
, que deve receber o seguinte formulário:{ <storage-engine-name>: <options> } as configurações storage engine especificadas ao criar índices são validadas e registradas no oplog durante a replicação para suportar conjuntos de réplicas com membros que usam mecanismos de armazenamento diferentes.
maxinteiroThe maximum number of documents allowed in the capped collection. A opçãosize
tem precedência sobre este limite. If a capped collection reaches thesize
limit before it reaches the maximum number of documents, MongoDB removes old documents. Se você preferir usar o limitemax
, certifique-se de que o limitesize
, que é necessário para uma collection limitada, seja suficiente para conter o número máximo de documento.maxTimeMSinteiroO limite de tempo cumulativo em milésimos de segundo para operações de processamento no cursor. O MongoDB aborta a operação o mais cedo possível após o ponto de interrupção.
gasodutoarrayUma array que consiste nos estágios de pipeline de agregação, que serão aplicados à coleção ou visualização especificada por
viewOn
. Consulte a documentação do comando de criação para obter mais informações.Novidade na versão 1.13.
sessionSessão do cliente a ser associada à operação.
Novidade na versão 1.3.
TamanhointeiroEspecifique um tamanho máximo em bytes para uma collection limitada. Uma vez que uma collection limitada atinge seu tamanho máximo, o MongoDB remove os documento mais antigos para abrir espaço para os novos documento. A opçãosize
é necessária para collection limitada e ignorada para outras collection.storageEnginearray|objectDisponível apenas para o mecanismo de armazenamento WiredTiger.
Permite que os usuários especifiquem a configuração para o mecanismo de armazenamento em uma base por coleção ao criar uma coleção. O valor da opção
storageEngine
deve ter o seguinte formato:{ <storage-engine-name>: <options> } as configurações storage engine especificadas ao criar coleções são validadas e registradas no oplog durante a replicação para suportar conjuntos de réplica com membros que usam mecanismos de armazenamento diferentes.
Time seriesarray|objectUm objeto que contém opções para criar coleções de séries temporais. Consulte a documentação de criação de comando para ver as opções suportadas.
Esta opção está disponível a partir do MongoDB 5.0 e resultará em uma exceção no tempo de execução se especificada para uma versão de servidor mais antiga.
Novidades na versão 1.9.
typeMaparrayO mapa de tipos aplicar aos cursores, o que determina como os documentos BSON são convertidos em valores PHP. O padrão é o mapa de tipos do banco de dados.
Isso será usado para o documento de resultado do comando retornado.
Ação de validaçãostringDetermina se
error
em documentos inválidos ou apenaswarn
sobre as violações, mas permite que documentos inválidos sejam inseridos.Importante
A validação de documentos só se aplica aos documentos como determinado pelo
validationLevel
.validationAction
Descrição"error"
Padrão. Os documentos devem passar por validação antes que a gravação ocorra. Caso contrário, a operação de gravação falha."warn"
Os documentos não precisam passar pela validação. Se o documento falhar na validação, a operação de gravação registrará a falha na validação.nível de validaçãostringDetermina quão rigorosamente o MongoDB aplica as regras de validação aos documentos existentes durante uma atualização.
validationLevel
Descrição"off"
Nenhuma validação para inserções ou atualizações."strict"
Padrão. Aplique regras de validação a todas as inserções e todas as atualizações."moderate"
Aplique regras de validação a inserções e atualizações em documentos válidos existentes. Não aplique regras a atualizações em documentos inválidos existentes.validadorarray|objectPermite aos usuários especificar regras ou expressões de validação para a coleção. Para obter mais informações, consulte Validação de documentos no manual do MongoDB.
A opção
validator
usa uma array que especifica as regras ou expressões de validação. Você pode especificar as expressões utilizando os mesmos operadores que os operadores de consulta do MongoDB com exceção de$near
,$nearSphere
,$text
e$where
.A validação ocorre durante atualizações e inserções. Os documentos existentes não passam por verificações de validação até a modificação.
Você não pode especificar um validador para collections nos bancos de dados
admin
,local
econfig
.Você não pode especificar um validador para collections
system.*
.viewOnstringO nome da coleção de origem ou visualização a partir da qual criar a visualização.
O nome não é o namespace completo da collection ou visualização (ou seja, não inclui o nome do reconhecimento de data center). As visualizações devem ser criadas no mesmo reconhecimento de data center que a collection ou visualização de origem.
Novidade na versão 1.13.
writeConcernWrite concern a ser usada para a operação. O padrão é a preocupação de gravação do banco de dados.
Return Values
Um array ou objeto com o documento de resultado do comando de criação .
Erros/exceções
MongoDB\Exception\UnsupportedException
se as opções forem usadas e não aceitas pelo servidor selecionado (p. ex., collation
, readConcern
, writeConcern
).
MongoDB\Exception\InvalidArgumentException
para erros relacionados à análise de parâmetros ou opções.
MongoDB\Driver\Exception\RuntimeException para outros erros no nível da extensão (por exemplo erros de conexão).
Exemplo
O exemplo a seguir cria uma collection users
no reconhecimento de data center test
com critérios de validação do documento:
$db = (new MongoDB\Client)->test; $result = $db->createCollection('users', [ 'validator' => [ 'username' => ['$type' => 'string'], 'email' => ['$regex' => '@mongodb\.com$'], ], ]); var_dump($result);
A saída seria então semelhante a:
object(MongoDB\Model\BSONDocument)#11 (1) { ["storage":"ArrayObject":private]=> array(1) { ["ok"]=> float(1) } }
Veja também
criar referência de comando no manual do MongoDB