Tudo bem?
Hoje iremos falar um pouco sobre o modelo de dados no MongoDB.
Como muitos de nós já sabemos o MongoDB não é um banco relacional e nem tem esquemas, isso significa que ele não está associado a nenhuma coluna ou tipo de dados predefinidos como ocorre com bancos relacionais. Isso possibilita um extrema flexibilidade para trabalhar com dados.
Vamos conhecer alguns elementos do MongoDB no que diz respeito a sua modelagem:
Collections:
De modo geral, uma collection é equivalente a uma tabela do mundo relacional. Pense nela como um container que armazene seus documentos(dados).
Veja abaixo um comparativo do modelo de dados do MongoDB x Modelo Relacional:
Documentos:
No MongoDB, um documento é um item que contém os dados propriamente ditos e é comparável a uma linha no SQL.
Vamos ver a seguir como dois exemplos de tipos de documentos totalmente diferentes podem existir em uma única colection chamada: Media.
Repare que são documentos com propósitos totalmente diferentes, mas, que estão contidos em uma única coleção. Fazer isso em um banco de dados relacional, seria necessário a adição de todos os seus possíveis campos em uma tabela o que tornaria em desperdicio de espaço. Veja os dois exemplos de documentos:
Exemplo Documento 1:
{ "Type": "CD", "Artist": "Nirvana", "Title": "Neverwind", "Genre": "Grunge", "Releasedate": "1991.09.24", "Tracklist": [ { "Track" : "1", "Title" : "Smells Like Teen Spirit", "Length" : "5:02" }, { "Track" : "2", "Title" : "In Bloon", "Length" : "4:15" } ] }
Exemplo Documento 2:
{ "Type": "Book", "Title": "Aprenda MongoDB", "ISBN": "787-2-2354-8788-9", "Publisher": "Apress", "Author": [ "David", "Brian", "Lucas", "Steve" ] }
Não sei se percebeu, mas um documento é constituído de pares de chave-valor: "Type": "Book". As chaves ou fields são escritas na forma de strings, porém, os valores podem ser de qualquer tipo. Veja alguns tipos de dados que podem ser adicionados a um documento:
Para você ter uma idéia de um de-para do MongoDB para um banco relacional, veja a imagem abaixo:
Abraço,
Ronaldo
Nenhum comentário:
Postar um comentário