CRUD com MongoDB
Já pensou em iniciar com NoSQL?
Conheço alguns desenvolvedores que ouviram falar, mas sequer se aventuram além do MySQL. Medo? Talvez. Mas e você? Já ouviu falar de NoSQL? Gostaria de conhecer um pouco mais para poder se aprofundar?Então, sigam-me os bons! :)

Instalação...
Há um tempo, fiz um post falando sobre a instalação do Mongo. Clique aqui e seja feliz.
Como o Mongo funciona?
Há o nosso banco de dados (database). OK, até aqui nada muda...No Mongo não há tabelas como no MySQL... Há coleções, que nada mais são que conjuntos de objetos de mesma natureza. Exemplo:
Clientes, Serviços, Automóveis etc...
Logo, dentro de nossas coleções há nossos documentos (ou objetos) que, comparando com bancos relacionais, são nossas colunas. Esses documentos não tem forma definida, tal como o banco relacional, então eu posso dizer que um cliente tem um campo CPF e outro CNPJ, sem precisar que existam os dois campos na tabela.
Melhor do que explicar, é mostrar!
Então vamos praticar!Primeiro, é levantar o servidor do mongo. Abra o prompt de comando/powershell/terminal/etc e digite:
mongod
Depois, abra um outro prompt de comando/powershell/terminal/etc (que a partir de agora vou chamar de C2) e digite:
mongo
Listando nossos bancos
Para saber se já existe banco de dados na sua instalação, digite este comando no C2:show dbs

Criando um banco
Para nosso tutorial, vamos criar um novo banco! Então, no C2, digite:use teste

Criando coleção
Ele irá criar um banco de dados temporário, pois ainda não há coleções dentro dele. Então, vamos criar! Digite:db.createCollection("clientes")

Inserindo dados em nossa coleção
Show! Criamos a nossa primeira coleção. Se digitarmos "show collections", o mongo listará todas as coleções que criamos dentro do banco "teste".Agora, vamos criar algo! No C2, digite:
db.clientes.insert({nome: "João", cpf: 123})

Listando documentos
Ok! Inserimos nosso primeiro cliente. Mas como faço para listar? Só digitar no C2:db.clientes.find()

Listando documentos de uma forma bonitinha
Note que ficou tudo na mesma linha... Imagine se nessa coleção há algumas dezenas de registros e você quer ver a listagem mais "bonitinha"...db.clientes.find().pretty()
Inserindo mais coisas...
Vamos adicionar mais alguns clientes...db.clientes.insert([
{ nome: "Maria", cpf: 321 },
{ nome: "Padaria da Esquina", cnpj: 551 },
{ nome: "Padaria da Outra Esquina", cnpj: 155 }
])

Agora, adicionamos mais clientes com um único comando. Para isso, só criei um array de objetos e mandei inserir... Além disso, criamos um novo campo "cnpj". Quando rodamos o comando "db.clientes.find()", vimos que o mongo lista todos os objetos desta coleção sem problemas.
Atualizando
Ops! A "Padaria da Outra Esquina" foi para outro bairro e mudou de nome para "Padaria do Outro Bairro" e temos que atualizar nosso banco.db.clientes.update(
{ _id: ObjectId("588b408a30913e8d47f304d4") },
{ $set: { nome: "Padaria do Outro Bairro" } }
)

Atualizamos nosso registro! Mas... De onde veio esse "_id"? E esse "$set"?
O mongo, quando inserimos algo, cria um identificador único para cada registro... Então, podemos utilizá-lo em nossas operações. Mas nada que impeça de você criar seu próprio identificador.
Já o "$set", ele serve para travarmos a alteração naquele campo. Se colocássemos o update sem o "$set", o mongo iria sobrescrever todo o objeto e perderíamos todos os outros atributos (neste caso, o CNPJ). Sacou?
Apagando registros
O João não é mais nosso cliente, e agora? Vamos apagar ele de nossa coleção!db.clientes.remove({ _id: ObjectId("588b3e7730913e8d47f304d0") })

Pronto! O João foi retirado da nossa lista de clientes.
The end
Com este pequeno tutorial, quis passar como é a forma de trabalho com o MongoDB e mostrar que ele não é um bicho de 7 cabeças... E ainda há bastante coisa para explicar!Então, até logo! :)