MongoDB - Visão geral

O MongoDB é um banco de dados de plataforma cruzada orientado a documentos que fornece alto desempenho, alta disponibilidade e fácil escalabilidade. O MongoDB trabalha no conceito de coleção e documento.

Base de dados

O banco de dados é um contêiner físico para coleções. Cada banco de dados obtém seu próprio conjunto de arquivos no sistema de arquivos. Um único servidor MongoDB normalmente tem vários bancos de dados.

Coleção

Coleção é um grupo de documentos MongoDB. É o equivalente a uma tabela RDBMS. Existe uma coleção em um único banco de dados. As coleções não impõem um esquema. Os documentos de uma coleção podem ter campos diferentes. Normalmente, todos os documentos em uma coleção têm finalidades semelhantes ou relacionadas.

Documento

Um documento é um conjunto de pares de valores-chave. Os documentos possuem esquema dinâmico. O esquema dinâmico significa que os documentos na mesma coleção não precisam ter o mesmo conjunto de campos ou estrutura, e os campos comuns nos documentos de uma coleção podem conter diferentes tipos de dados.

A tabela a seguir mostra o relacionamento da terminologia RDBMS com o MongoDB.

RDBMS MongoDB
Base de dados Base de dados
Mesa Coleção
Tupla / Linha Documento
coluna Campo
Junção de mesa Documentos Embutidos
Chave primária Chave primária (chave padrão _id fornecida pelo próprio MongoDB)
Servidor e cliente de banco de dados
mysqld / Oracle Mongod
mysql / sqlplus Mongo

Documento de amostra

O exemplo a seguir mostra a estrutura do documento de um site de blog, que é simplesmente um par de valores-chave separados por vírgulas.

{
   _id: ObjectId(7df78ad8902c)
   title: 'MongoDB Overview', 
   description: 'MongoDB is no sql database',
   by: 'tutorials point',
   url: 'http://www.tutorialspoint.com',
   tags: ['mongodb', 'database', 'NoSQL'],
   likes: 100, 
   comments: [	
      {
         user:'user1',
         message: 'My first comment',
         dateCreated: new Date(2011,1,20,2,15),
         like: 0 
      },
      {
         user:'user2',
         message: 'My second comments',
         dateCreated: new Date(2011,1,25,7,45),
         like: 5
      }
   ]
}

_idé um número hexadecimal de 12 bytes que garante a exclusividade de cada documento. Você pode fornecer _id ao inserir o documento. Se você não fornecer, o MongoDB fornecerá uma id exclusiva para cada documento. Esses 12 bytes, os primeiros 4 bytes para o carimbo de data / hora atual, os próximos 3 bytes para a id da máquina, os próximos 2 bytes para a id do processo do servidor MongoDB e os 3 bytes restantes são VALOR incremental simples.