Deixe-me dar-lhe uma rápida visão geral do MongoDB.
Por que MongoDB é interessante?
Como é útil para a nossa aplicação?
E quais são algumas das características salientes do MongoDB em
contraste com os bancos de dados SQL tradicionais?
Portanto, este não será um tratado inteiro ou uma base de dados.
Presumo que tenha conhecimento suficiente de bases de dados.
Então, o que eu apresentaria o MongoDB seria fácil para você seguir.
A partir de seu conhecimento prévio de bancos de dados,
presumo que você já entende que os bancos de dados são usados para armazenar dados estruturados
e também permitem que você execute
várias operações dos dados, incluindo consulta dos dados,
inserção de registros no banco de dados,
atualização de um registro existente no banco de dados ou excluindo um registro do banco de dados.
As operações crud típicas que são suportadas em bancos de dados.
Structured Query Language ou bancos de dados baseados em SQL têm sido
muito populares por um longo tempo como um meio de armazenar dados.
O MySQL é um exemplo de banco de dados baseado em SQL.
Eles têm sido muito eficazes no armazenamento de
dados e, em seguida, atender a muitas das necessidades dos aplicativos.
Na verdade, muitos sites já usam bancos de dados SQL como o backend para armazenar dados dado
que por isso não é
importante bancos de dados SQL com novos tipos de aplicativos que estão ficando on-line.
Há uma demanda crescente por
novos recursos que nem todos os bancos de dados baseados em SQL podem atender.
Então, este é o lugar onde o banco de dados baseado em NoSQL não
são apenas banco de dados baseado em SQL estão ganhando um monte de concessão,
MongoDB sendo um exemplo disso.
Assim, os bancos de dados NoSQL são projetados para
resolver algumas das deficiências de bancos de dados baseados em SQL.
Os próprios bancos de dados NoSQL podem ser classificados em quatro categorias diferentes.
Temos bancos de dados baseados em documentos como MongoDB,
temos os bancos de dados baseados em valor chave mais simples como Redis, bancos de dados
baseados em família de colunas como Cassandra e, em seguida, os bancos de dados gráficos mais recentes como
Neo4J e, na verdade, há mais agora no mercado do que esses exemplos que eu dei.
Mas, claro, neste curso,
estaremos nos concentrando principalmente em bancos de dados baseados em documentos, MongoDB em particular.
Então eu vou rever mais sobre MongoDB no resto desta palestra. Os
bancos de dados de documentos, como o nome indica,
são construídos em torno de documentos.
Um documento é uma unidade independente de informação e pode estar em muitos formatos diferentes,
sendo JSON um dos formatos mais populares para armazenar documentos em um banco de dados de documentos.
Como exemplo, um documento JSON é mostrado aqui e
isso seria algo que é concedido em um banco de dados de documentos típico.
Os próprios documentos podem ser organizados em coleções.
Assim, uma coleção é um grupo de documentos e, por sua vez,
o próprio banco de dados pode ser considerado como um conjunto de coleções.
Portanto, estes termos, “Documentos coleções” e “O banco de dados” ocorrerão
frequentemente quando discutimos sobre bancos de dados de documentos e MongoDB em particular.
Por que os bancos de dados NoSQL são de nosso interesse?
Em particular, a escalabilidade é uma das
razões pelas quais os bancos de dados NoSQL brilharam muito bem.
Agora, em termos de escalabilidade,
quando olhamos para os dois requisitos;
disponibilidade e consistência dos bancos de dados, normalmente, os
bancos de dados SQL acham muito difícil atender aos dois requisitos simultaneamente.
Portanto, há uma troca entre disponibilidade e consistência.
Então é aqui que os bancos de dados NoSQL têm sido muito
mais bem sucedidos em atender aos dois requisitos.
É aqui que o terceiro aspecto destacado aqui, a
tolerância à partição, também entra em vigor.
Agora particionar um banco de dados SQL e, em seguida, distribuí-lo não é tão simples.
Considerando que um banco de dados NoSQL é muito mais passível de
ser subdividido e, em seguida, distribuído entre vários servidores.
O segundo aspecto de porque os bancos de dados NoSQL têm sido populares é a facilidade de implantação.
Quando você usa um banco de dados SQL,
há uma necessidade de corresponder os registros em seu banco de dados SQL de volta
a objetos em sua linguagem nativa, como Java ou Javascript e assim por diante.
Portanto, há uma necessidade de mapeamento relacional de objeto e é aqui
que um gateway intermediário precisa preencher esse requisito.
Com um banco de dados NoSQL como um banco de dados baseado em documentos armazenando dados na forma de JSON,
o mapeamento torna-se bastante direto e essa é uma das razões pelas quais os
bancos de dados NoSQL têm sido muito populares na área de desenvolvimento web.
Vindo para MongoDB em particular,
MongoDB é um banco de dados de documentos.
O próprio servidor pode suportar vários bancos de dados.
Um banco de dados em particular é um conjunto de coleções
e a própria coleção como discutimos anteriormente é um conjunto de documentos.
Assim, o documento torna-se a unidade de informação no caso de MongoDB.
O documento no MongoDB não é nada além de um documento JSON.
Na verdade, MongoDB armazena o documento em uma forma mais compacta chamada como o formato BSON.
Falaremos sobre isso no próximo slide.
Enquanto MongoDB é um banco de dados baseado em documentos,
ele armazena os documentos JSON em um formato compacto
chamado como o formato BSON ou o formato JSON binário.
Agora isso suporta prefixo de comprimento em cada valor para
que pular sobre um campo se torne muito mais fácil.
Então, como você vê, MongoDB suporta recursos adicionais do que um banco de dados de documentos simples.
As informações sobre o tipo de um valor de campo também são armazenadas.
Além disso, dentro do documento JSON,
tipos primitivos adicionais são armazenados que são úteis
quando você está executando operações no banco de dados.
Coisas como o formato de data UTC,
ele também suporta binário bruto e também usa um formato de ID de objeto
para armazenar o ID de cada documento no banco de dados, se você escolher.
Vamos falar sobre isso com um pouco mais de detalhes no próximo slide.
Vamos falar sobre o ID do objeto MongoDB.
Cada documento no banco de dados MongoDB deve ter um campo ID,
um campo ID sublinhado,
que atua como a chave primária para o documento.
E esse campo é exclusivo para cada documento.
O campo ID em si pode ser usado em
muitos formatos e um formato particular que MongoDB
atribui automaticamente no caso de você não optar por usar seu próprio campo ID
é o ID do objeto que é criado por padrão pelo MongoDB.
Assim, o ID do objeto em si é
um pedaço estruturado de informação, mas é armazenado como o ID do documento.
Como exemplo, o campo ID que é
atribuído automaticamente pelo Mongo no caso de você não especificar um campo ID,
contém o ID do objeto na forma de uma string longa.
Agora esta string tem um formato específico que
permite que ele armazene um número de partes de informações dentro do ID do objeto.
Vejamos a estrutura do próprio ID do objeto no próximo slide.
Como mencionei, o campo ID do objeto em si é
um campo de 12 bytes que armazena informações em um formato específico.
Os primeiros quatro bytes incluem um timestamp,
o timestamp típico Unix na resolução de um segundo.
Então isso é dito nos primeiros quatro bytes.
Em seguida, os próximos três bytes em direção ao ID
da máquina, a máquina na qual o servidor Mongo está sendo executado
e os próximos dois bytes é o ID do processo,
o processo Mongo específico que criou
este documento e, em seguida, o último campo é um incremento.
Agora, como você entende,
o campo de carimbo de data/hora em si está na resolução de um segundo.
Então, se você tiver vários documentos que são armazenados dentro do mesmo segundo,
então o campo de incremento irá distinguir entre os documentos.
Eles incremento campo é um campo auto-incrementante.
Assim, cada novo documento criado dentro de um segundo obterá um novo valor de incremento.
Assim, combinado com esses dois,
você pode facilmente distinguir entre
diferentes documentos armazenados no banco de dados de documentos.
Portanto, isso permite que você forneça claramente um ID exclusivo para cada documento.
Não só isso, dado um ID,
você pode facilmente recuperar informações desse ID.
Assim, por exemplo, você pode obter o objectID e, em seguida, chamar
o método getTimeStamp do ID do objeto e
isso retornará o carimbo de data/hora no formato de data ISO.
Então, isso permitirá que você identifique quando este documento foi criado.
Com esta rápida compreensão do MongoDB,
vamos prosseguir para o exercício onde vamos primeiro instalar MongoDB em nosso computador
e depois interagir com o banco de dados MongoDB usando a ondulação Mongo,
o loop de impressão avaliação leitura que Mongo suporta.
Agora, depois disso, vamos olhar para como podemos acessar
o servidor Mongo de dentro do nosso aplicativo nó na próxima lição.