Quando você cria um banco de dados no MongoDB, seu banco de dados é basicamente um contêiner vazio ao qual você pode adicionar uma ou mais coleções.
Uma coleção é análoga a uma tabela em bancos de dados relacionais.
Em bancos de dados relacionais, você pode usar
CREATE TABLE para criar cada tabela que você deseja no banco de dados. Mas o MongoDB não é um banco de dados relacional e armazena seus dados como documentos. Cada documento é armazenado em uma coleção.
Este artigo mostra como criar uma coleção no MongoDB.
Duas opções
Você tem duas opções para criar coleções no MongoDB:
- Implícito
- Explícito
Segue um exemplo de cada um.
Criar uma coleção – implicitamente
Você pode criar uma coleção implicitamente simplesmente adicionando um documento a uma coleção inexistente. Ao fazer isso, a coleção é criada, caso ainda não exista.
Aqui está um exemplo de criação implícita de uma coleção:
db.pets.insert({ name: "Fetch" }) Isso cria uma coleção chamada
pets e insere um documento nele. Na verdade, ele só cria a coleção se ela ainda não existir. Se já existir, ele simplesmente insere o documento na coleção existente com esse nome.
Basicamente, a sintaxe é assim:
db.<collection>.insert() Onde
<collection> é o nome da coleção. Criar uma coleção – explicitamente
Você também pode criar coleções explicitamente com o
db.createCollection() método. Este método permite especificar várias opções, como definir o tamanho máximo ou as regras de validação da documentação. Isso é meio análogo ao
CREATE TABLE instrução em SQL. Dito isso, o MongoDB não exige que você especifique colunas, tipos de dados, etc, como você precisaria especificar com o CREATE TABLE declaração ao usar um banco de dados relacional. Aqui está um exemplo de uso do
db.createCollection() método para criar uma coleção:db.createCollection("employees") Resultado:
{ "ok" : 1 } Neste exemplo, não especifiquei nenhuma opção. Portanto, não havia nenhum benefício real em criá-lo como esses versículos criando-o implicitamente (como no exemplo anterior).
No entanto, se você quiser especificar opções para sua coleção, criá-la explicitamente é o caminho a seguir.
Aqui está um exemplo de especificação de algumas opções ao criar uma coleção:
db.createCollection(
"products",
{
capped : true,
size : 7500500,
max : 7000
}
) Resultado:
{ "ok" : 1 } Aqui está uma explicação das opções que forneci neste exemplo:
- O
cappedO argumento permite que você especifique se o tamanho da coleção deve ou não ser limitado (ou seja, não permitido crescer além de um determinado tamanho). Se você especificartrue, você também deve definir um tamanho máximo nosizecampo. - O
sizeO argumento define um tamanho máximo em bytes para uma coleção limitada. Quando uma coleção limitada atinge seu tamanho máximo, o MongoDB remove os documentos mais antigos para liberar espaço para os novos documentos. Osizecampo é obrigatório para coleções limitadas e ignorado para outras coleções. - O
maxO argumento permite especificar o número máximo de documentos permitidos na coleção limitada. Se uma coleção limitada atingir osizelimite antes de atingir o número máximo de documentos, o MongoDB remove os documentos antigos. Portanto, certifique-se de que osizeargumento é suficiente para conter o número de documentos especificado com omaxargumento.
Estas são três das várias opções que você pode especificar com o
db.createCollection() método. Sintaxe e mais detalhes
A sintaxe completa (no momento da redação deste artigo) se parece com isso:
db.createCollection( <name>,
{
capped: <boolean>,
autoIndexId: <boolean>,
size: <number>,
max: <number>,
storageEngine: <document>,
validator: <document>,
validationLevel: <string>,
validationAction: <string>,
indexOptionDefaults: <document>,
viewOn: <string>,
pipeline: <pipeline>,
collation: <document>,
writeConcern: <document>
}
) Consulte
db.createCollection() da documentação oficial do MongoDB para uma explicação detalhada de cada opção.