MongoDB



História


Lançado sob uma combinação da GNU e a licença Apache, MongoDB é software livre e open source desenvolvido primeiramente pela 10gen(empresa com sede em Nova York e que agora se chama MongoDB Inc.) em 2007, como o serviço de um produto, e se tornou um modelo de desenvolvimento de código aberto a partir de 2009. Desde então, MongoDB foi adotado por um grande número de sites e serviços, incluindo eBay, Foursquare, SourceForge, The New York Times, entre outros. Hoje, o MongoDB é o sistema de banco de dados NoSQL mais popular.

Principais características


  • Modelo de dados de documentos com esquemas dinâmicos - Em vez de armazenar dados em linhas e colunas, como seria com um banco de dados relacional, MongoDB armazena uma forma binária de documentos JSON (BSON).


  • Completo, suporte índice flexível e consultas ricos - Qualquer campo em um documento MongoDB pode ser indexado.


  • Auto-Sharding para escalabilidade horizontal e Built-in de replicação para alta disponibilidade - Balanceamento de carga e/ou duplicação de dados para manter o sistema em funcionamento no caso de falha de hardware. Possui Configuração automática e fácil de implantar, além de que novas máquinas podem ser adicionados a um banco de dados já em execução.


  • Pesquisa de texto - Suporta busca de campo, consultas de intervalo, pesquisas de expressões regulares, etc. As consultas podem retornar campos específicos de documentos e incluir também funções JavaScript definidas pelo usuário.


  • Segurança avançada - Existem plugins de monitoramento disponíveis e várias ferramentas de rede.


  • Agregação e MapReduce - O MapReduce pode ser usado para o processamento de dados e operações de agregação em lote. A estrutura de agregação permite aos usuários obter tipos de resultados semelhantes a cláusula GROUP BY do SQL.


  • Grande mídia de armazenamento com GridFS - Pode ser usado como um sistema de arquivos , aproveitando o balanceamento de carga e recursos de replicação de dados em várias máquinas para armazená-los.


Sharding


Sharding é o processo de armazenar registros de dados em várias máquinas e é a abordagem do MongoDB para atender as demandas de crescimento de dados. À medida que os dados aumentam de tamanho, uma única máquina pode não ser suficiente para armazená-los, nem proporcionar uma leitura e gravação com rendimento aceitável. O Sharding resolve o problema com a escala horizontal, ou seja, é possível adicionar mais máquinas para suportar o crescimento de dados e as demandas de operações.

mongos


No MongoDB, os mongos é um serviço do roteamento que permite processos a partir da camada de aplicação, e determina a localização dos dados no banco, para concluir tais operações. Os mongos é que permitem inserir, remover e atualizar dados no banco, assim como gerar informações de replicação, configurar o sharding, desligar o servidor, executar JavaScript e etc.