MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Criar uma coleção no MongoDB


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ê especificar true , você também deve definir um tamanho máximo no size 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. O size 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 o size limite antes de atingir o número máximo de documentos, o MongoDB remove os documentos antigos. Portanto, certifique-se de que o size argumento é suficiente para conter o número de documentos especificado com o max 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.