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.