O primeiro passo para usar o MongoDB é entender os conceitos básicos do MongoDB e o modelo de dados (estrutura de dados), sabendo como os dados são armazenados. Na verdade, o MongoDB é muito semelhante ao MySQL, então todo mundo que conhece o MySQL não terá dificuldade em aprender o MongoDB.
Conceitos básicos do MongoDB
Banco de dados
O banco de dados do MongoDB é o mesmo que o banco de dados do MySQL.
Coleção
Uma coleção do MongoDB se refere a uma coleção de dados de documentos, semelhante ao conceito de uma tabela no MySQL.
Documento
Um documento do MongoDB, semelhante a uma linha de dados em uma tabela do MySQL, é um dado estruturado em JSON composto por vários campos, tornando a estrutura do documento no MongoDB muito flexível.
Campo
Um campo de documento do MongoDB é semelhante ao conceito de um campo em uma tabela do MySQL, representando os dados específicos a serem armazenados, sendo que cada campo tem seu próprio tipo de dado.
Índice
O índice do MongoDB é semelhante ao índice do MySQL, com o propósito de melhorar a eficiência da consulta.
Agregação
O conceito de agregação no MongoDB é semelhante à análise de agregação Group by/Count/Sum no MySQL, usada para análise estatística de dados.
Comparação de Conceitos entre MongoDB e MySQL
MySQL | MongoDB |
---|---|
Banco de Dados | Banco de Dados |
Tabela | Coleção |
Linha | Documento |
Coluna | Campo de Documento |
Índice | Índice |
Agregação (por exemplo, group by) | Agregação |
Basicamente, os conceitos do MongoDB podem ser equiparados aos do MySQL, então o MongoDB é o banco de dados não relacional mais parecido com bancos de dados relacionais (NoSQL).
Dados de Documento do MongoDB
Um documento é simplesmente uma estrutura JSON composta de vários campos, cada um com seu próprio tipo de dado. Ao desenvolver com o MongoDB, o foco está principalmente em como projetar a estrutura do documento, semelhante ao núcleo do uso do MySQL envolvendo o projeto de estruturas de tabela.
Exemplo de dados de documento do MongoDB:
{
"_id": "5cf0029caff5056591b0ce7d",
"firstname": "Jane",
"lastname": "Wu",
"address": {
"street": "1 Circle Rd",
"city": "Los Angeles",
"state": "CA",
"zip": "90404"
},
"hobbies": ["surfing", "coding"]
}
Pode ser qualquer estrutura JSON arbitrariamente aninhada, algo que as estruturas de tabela do MySQL não podem alcançar. O campo _id
serve como a chave primária do documento e, se você não especificar um valor específico, o MongoDB gerará um valor único aleatório.
A maior diferença entre a estrutura de dados do MongoDB e as tabelas do MySQL é que o MongoDB não exige a predefinição da estrutura do documento. Com o MongoDB, você pode inserir diretamente dados JSON em uma coleção sem a necessidade de um esquema predefinido. Cada vez que você escreve dados JSON em uma coleção do MongoDB, o formato pode ser diferente, permitindo que campos sejam adicionados ou removidos a qualquer momento.
Observação: Apesar da estrutura de documento do MongoDB ser bastante flexível e poder acomodar formatos de dados variados para cada entrada, em aplicações práticas, a estrutura de dados dentro de uma coleção geralmente é uniforme. Caso contrário, se o formato de cada entrada for diferente na coleção, mantê-la será um pesadelo, já que você não saberá o formato dos dados recuperados toda vez.