Você pode criar uma coleção usando o
createCollection()
ou dinamicamente ao inserir um documento. As coleções são como contêineres para documentos relacionados. Eles são normalmente usados para agrupar documentos de um tópico semelhante. Por exemplo, você pode ter nomes de coleção como users ,
pageviews
, posts
, comments
, etc Quando criamos nosso banco de dados, criamos uma coleção chamada artists . Esta coleção conterá documentos com detalhes do artista, como nomes dos artistas, álbuns que lançaram etc.
Duas maneiras de criar uma coleção
Aqui estão duas maneiras de criar coleções:
- Você pode criar uma coleção em tempo real ao inserir um documento (usando o
insert()
método. - Você também pode criar uma coleção explicitamente, usando o
createCollection()
método.
Em movimento
Quando você usa o
insert()
para inserir um documento, você especifica a coleção na qual o documento será inserido. Se a coleção ainda não existir, ela será criada. Este é o método que usamos anteriormente quando criamos nossos
artists
coleção ao inserir um documento. Aqui está o código que usamos:
db.artists.insert({ artistname: "The Tea Party" })
Neste caso, os
artists
coleção não existia anteriormente, então ela foi criada para nós. Usando o createCollection()
Método
Você também pode criar coleções usando o
createCollection()
método. Isso permite que você crie uma coleção sem inserir um documento. Aqui está um exemplo de uso do
createCollection()
método:db.createCollection("producers")
Com opções
Você também pode especificar opções para a coleção usando o
db.createCollection(name, options)
sintaxe. Aqui está um exemplo:
db.createCollection("log", { capped : true, size : 4500500, max : 4000 } )
Os campos disponíveis a partir do MongoDB versão 3.2 são os seguintes.
Campo | Tipo | Descrição | ||||||
---|---|---|---|---|---|---|---|---|
capped | booleano | Quando definido como true , cria uma coleção limitada. Uma coleção limitada é uma coleção de tamanho fixo que substitui automaticamente suas entradas mais antigas quando atinge seu tamanho máximo. Se você especificar true , você também deve definir um tamanho máximo no size campo. | ||||||
autoIndexId | booleano | Especifique false para desabilitar a criação automática de um índice no _id campo. A partir da versão 3.2 do MongoDB, este campo está obsoleto e será removido na versão 3.4. | ||||||
size | número | Tamanho máximo em bytes para uma coleção limitada. Usado apenas com coleções limitadas (é ignorado em outras coleções). | ||||||
max | número | Número máximo de documentos permitidos na coleção limitada. Observe que o size campo tem precedência sobre o max campo. Se a coleção atingir seu limite de tamanho antes que o limite de documentos seja atingido, o MongoDB removerá os documentos de qualquer maneira. | ||||||
usePowerOf2Sizes | booleano | Disponível apenas no mecanismo de armazenamento MMAPv1. Este campo está obsoleto desde a versão 3.0. | ||||||
noPadding | booleano | Disponível apenas no mecanismo de armazenamento MMAPv1. Desativa o poder de alocação de 2 tamanhos para a coleção. O padrão é false . | ||||||
storageEngine | documento | Disponível apenas no mecanismo de armazenamento WiredTiger. Permite a configuração do mecanismo de armazenamento por coleção ao criar uma coleção. A sintaxe é a seguinte:{ <storage-engine-name>: <options> } | ||||||
validator | documento | Permite especificar regras ou expressões de validação para a coleção. Observe que a validação só é aplicada ao inserir e atualizar dados. Portanto, os dados que já existem no banco de dados não são validados (até que sejam atualizados). | ||||||
validationLevel | cadeia | Permite especificar com que rigor as regras de validação são aplicadas aos documentos existentes durante uma atualização. Valores possíveis:
| ||||||
validationAction | cadeia | Especifica se deve ocorrer um erro, ou apenas um aviso, quando são inseridos documentos inválidos. Se houver erro, os documentos inválidos ainda serão inseridos, mas com um aviso.
| ||||||
indexOptionDefaults | documento | Permite especificar uma configuração padrão para índices ao criar uma coleção. Aceita um storageEngine documento com a seguinte sintaxe:{ |