Esse é o início da série não faço a mínima ideia, onde vou escrever sobre - surprise surprise - algo que não sei bem o que é.
MongoDB é uma dessas palavrinhas que vejo muita gente falar, penso “vou pesquisar sobre isso” e o tempo passa e não volta mais. Mas enfim, é mais um dos vários bancos não-relacionais que andam dando as caras há algum tempo.
As consultas no MongoBD seguem o padrão JSON (que o Ruby se aproximou nas hashes do 1.9), o que é legal por manter uma similaridade em diferentes representações de dados.
O armazenamento dos dados se dá por pares de chave-valor que ficam dentro de coleções (como “clientes”). Tudo se dá em pares de chave-valor, até as consultas. Para buscar na coleção bares
os que têm capacidade entre 100 e 300 pessoas, por exemplo, a busca seria db.bares.find({ capacidade: { $gte: 100, $lte: 300 } })
, onde $gte
é greater than or equal to e $let
é, por sua vez, less than or equal to.
Outros exemplos de consulta:
db.clientes.find( { nome: /^fulano/i } ) //adeus montar queries com upper e like
db.alunos.count({ ano: 5, turma: 'B'}) //quantos diabos o inferno tem
db.contas.find().skip(20).limit(10) //3ª página, fácil assim
Por enquanto é só isso. O MongoDB te dá o poder de definir funções em Javascript (pois é), fazer MapReduce com uma facilidade absurda e mais uma porrada de coisas. Mas fica pra próxima, porque não faço a mínima ideia de como fazer essas coisas.