O banco de dados do tipo ‘Documents’ é um dos tipos mais versáteis que temos no mundo NoSQL, possuindo um schema definido como flexível que permite que os registros e documentos possuam campos com diferentes tipos e em diferentes quantidades sem a existência de um schema fixo. Tais documentos são definidos em formato JSON, utilizando conceitos próximos do modelo Orientado a Objetos onde o objeto aqui equivaleria a um documento. Novos campos podem ser adicionados facilmente, permitindo uma rápida evolução da aplicação em desenvolvimento. Exemplos: MongoDB e CouchDB.
O MongoDB não possui um schema definido assim como os bancos de dados relacionais, mas isso não quer dizer que ele não possui qualquer schema. O que temos no MongoDB é um schema flexível, que permite a criação de documentos livremente, adicionando novos campos conforme a demanda do desenvolvimento da aplicação, agilizando justamente esse processo. Mas caso necessário o MongoDB pode ser configurado para garantir que campos e tipos de dados sejam definidos, para isso fazendo uso de validators que podem ser criados em uma collection. O MongoDB suporta diversos tipos de índices: unique, compound, hash, range, text e geospatial. Para criação de consultas complexas podemos utilizar o processo aggregate que implementa um conceito de pipeline de tratamento de informações. Nesse processo podemos gerar estatísticas e informações de análise do conjunto de dados.
Algumas das características mais importantes do MongoDB são:
- Schema flexível;
- Índices;
- Aggregation;
- Suporte a replicação;
- Escalonável Horizontalmente (Sharding);
- Orientado a Documentos;
- Utiliza formatos JSON e BSON;
- Transaction e Multi-Document ACID Transaction para ReplicaSet e Sharding
Colocar um curso da 4Linux no seu LinkedIn faz toda a diferença!
Transforme a sua carreira agora, invista em um curso que não é palestra e sim cursos para quem quer aprender de verdade, colocando a ‘mão na massa’.
Aprenda com a única escola que também implementa projetos, trazendo essa experiência do mundo corporativo para a sala de aula.
Já treinamos +200.000 profissionais em nossos +40 cursos nas áreas de: Cloud, Containers, DevOps, Linux, Banco de Dados, Monitoramento de TI, Segurança.
ReplicaSet
A ReplicaSet no MongoDB é um grupo de servidores que mantêm o mesmo conjunto de dados, fornecendo redundância e alta disponibilidade e é a base para todas as implementações de produção. A replicação fornece redundância e aumenta a disponibilidade dos dados.
Sharding
O Sharding é um método para particionamento de dados em vários servidores. O MongoDB usa o recurso de sharding para suportar implantações com conjuntos de dados muito grandes e muitas operações I/O.
Os sistemas de banco de dados com grandes conjuntos de dados ou aplicações que utilizam muitas operações I/O podem esgotar a capacidade de um único servidor. Por exemplo, altas taxas de consulta podem esgotar a capacidade da CPU do servidor e reduzir a performance do banco. Com o sharding esse processamento pode ser distribuído em vários servidores melhorando a performance da aplicação.