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
capped
O 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 nosize
campo. - O
size
O 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. Osize
campo é obrigatório para coleções limitadas e ignorado para outras coleções. - O
max
O argumento permite especificar o número máximo de documentos permitidos na coleção limitada. Se uma coleção limitada atingir osize
limite antes de atingir o número máximo de documentos, o MongoDB remove os documentos antigos. Portanto, certifique-se de que osize
argumento é suficiente para conter o número de documentos especificado com omax
argumento.
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.