{"id":1342,"date":"2021-07-20T19:55:32","date_gmt":"2021-07-20T19:55:32","guid":{"rendered":"https:\/\/4linux.com.br\/?page_id=1342"},"modified":"2023-10-10T20:46:48","modified_gmt":"2023-10-10T20:46:48","slug":"o-que-e-mongodb","status":"publish","type":"page","link":"https:\/\/4linux.com.br\/o-que-e-mongodb\/","title":{"rendered":"Banco de dados NoSQL MongoDB"},"content":{"rendered":"\n
O MongoDB \u00e9 um banco de dados do tipo Documento (Document Store) que utiliza JSON (JavaScript Object Notation) como formato de dados.<\/p>\n\n\n\n
Os bancos de dados NoSQL s\u00e3o definidos pela forma como armazenam os dados internamente, podendo ser: Documents, Graphs, Key-value pairs ou Wide Column.<\/p>\n\n\n\n
O banco de dados do tipo ‘Documents’ \u00e9 um dos tipos mais vers\u00e1teis que temos no mundo NoSQL, possuindo um schema definido como flex\u00edvel que permite que os registros e documentos possuam campos com diferentes tipos e em diferentes quantidades sem a exist\u00eancia de um schema fixo. Tais documentos s\u00e3o definidos em formato JSON, utilizando conceitos pr\u00f3ximos do modelo Orientado a Objetos onde o objeto aqui equivaleria a um documento. Novos campos podem ser adicionados facilmente, permitindo uma r\u00e1pida evolu\u00e7\u00e3o da aplica\u00e7\u00e3o em desenvolvimento. Exemplos: MongoDB e CouchDB.<\/p>\n\n\n\n
O MongoDB n\u00e3o possui um schema definido assim como os bancos de dados relacionais, mas isso n\u00e3o quer dizer que ele n\u00e3o possui qualquer schema. O que temos no MongoDB \u00e9 um schema flex\u00edvel, que permite a cria\u00e7\u00e3o de documentos livremente, adicionando novos campos conforme a demanda do desenvolvimento da aplica\u00e7\u00e3o, agilizando justamente esse processo. Mas caso necess\u00e1rio 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 \u00edndices: unique, compound, hash, range, text e geospatial. Para cria\u00e7\u00e3o de consultas complexas podemos utilizar o processo aggregate que implementa um conceito de pipeline de tratamento de informa\u00e7\u00f5es. Nesse processo podemos gerar estat\u00edsticas e informa\u00e7\u00f5es de an\u00e1lise do conjunto de dados.<\/p>\n\n\n\n
Algumas das caracter\u00edsticas mais importantes do MongoDB s\u00e3o:<\/p>\n\n\n\n
ReplicaSet<\/strong><\/p>\n\n\n\n A ReplicaSet no MongoDB \u00e9 um grupo de servidores que mant\u00eam o mesmo conjunto de dados, fornecendo redund\u00e2ncia e alta disponibilidade e \u00e9 a base para todas as implementa\u00e7\u00f5es de produ\u00e7\u00e3o. A replica\u00e7\u00e3o fornece redund\u00e2ncia e aumenta a disponibilidade dos dados.<\/p>\n\n\n\n Sharding<\/strong><\/p>\n\n\n\n O Sharding \u00e9 um m\u00e9todo para particionamento de dados em v\u00e1rios servidores. O MongoDB usa o recurso de sharding para suportar implanta\u00e7\u00f5es com conjuntos de dados muito grandes e muitas opera\u00e7\u00f5es I\/O.<\/p>\n\n\n\n Os sistemas de banco de dados com grandes conjuntos de dados ou aplica\u00e7\u00f5es que utilizam muitas opera\u00e7\u00f5es I\/O podem esgotar a capacidade de um \u00fanico 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\u00eddo em v\u00e1rios servidores melhorando a performance da aplica\u00e7\u00e3o.<\/p>\n\n\n\n Veja outros que temos:<\/strong><\/p>\n\n\nVoc\u00ea gostou deste artigo?<\/strong><\/h2>\n\n\n\n