Aplicações Georreferenciadas com MongoDB

2.222 visualizações

Publicada em

Muito se tem falado sobre bases NoSQL ultimamente, opiniões diversas condenando e aplaudindo a mesma razão: a não estruturação dos dados. O fato é que bases NoSQL vieram para ficar e têm sua utilidade e praticidade, ou não teríamos casos de sucesso como o Foursquare, que utiliza MongoDB

Esta palestra visa apresentar um pouco de MongoDB e seus conceitos básicos (databases, collections, etc…), apresentar um tutorial prático de como se conectar e fazer consultas em linha de comando e python.

Finalmente, os índices e consultas geográficas serão apresentados, bem como alguns exemplos de utilização e a Apontador API, que poderá ser combinada com sua aplicação para enriquecer ainda mais seu conteúdo georreferenciado.

Publicada em: Tecnologia
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
2.222
No SlideShare
0
A partir de incorporações
0
Número de incorporações
183
Ações
Compartilhamentos
0
Downloads
23
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Aplicações Georreferenciadas com MongoDB

  1. 1. MongoDB + Geo Criando aplicações Georreferenciadas com MongoDB
  2. 2. Contato “Eu só não quero cantar sozinho, eu quero um coro de passarinho” Roberto Carlos, antecipando o twitter @eduardomacan
  3. 3. MongoDB ●NoSQL ●Document oriented (javascript objects) ●Javascript/JSON ●Suporte a Geo nativo ●Sharding ●map & reduce ●Language Drivers (oficiais) ● C, C#,C++, Haskell, Java, Javascript ● Perl, PHP, Python, Ruby
  4. 4. Operações básicas ●db.collection.save( { 'nome' : 'Jose', 'idade' : '22' }) ●db.collection.find( { 'nome': /os/ }) ●db.collection.findOne( {'nome' : 'Jose'}) ●db.collection.remove( {'idade' : {$gt : 20}})
  5. 5. Criando um índice geográfico db.collection.save({ "username": "eduardomacan", "latlong": [-23.436642,-46.67144], "tags": [ "debian", "linux", "mongodb", "nginx" ]}); db.collection.ensureIndex( { 'latlong' : '2d'})
  6. 6. Consultas db.collection.find( { loc : { $near : [-23,-46] } } ) db.collection.find( { loc : { $near : [-23,-46] }, tags: 'debian'} ) db.collection.ensureIndex( { 'latlong' : '2d' , tags: 1})
  7. 7. Apontador API ●http://api.apontador.com.br ●REST (language agnostic!) ●Toda a Base Apontador de Locais ●Fotos, URLs, Reviews, etc ●CHECKINS (novidade) ●Autenticação OAuth e Basic ●Libs Python, PHP, Javascript...
  8. 8. Exemplo Estudo de caso: findboteco.py Problema: Encontrar um local para um encontro de uma comunidade de software livre que seja mais próximo de todos. Implementação: Manteremos uma base de usuários, com tags descrevendo a que comunidades de software livre ele/ela pertence (poderia ser através de um cliente mobile!) em MongoDB. Buscaremos pelas tags todos os usuários que pertencem a uma comunidade, calcularemos o ponto médio e buscaremos o Bar mais próximo deste ponto no Apontador! Resultado: Arquivo KML para Google Earth
  9. 9. Exemplo Estudo de caso: findboteco.py Proposta: Vamos fazer uma versão web do findboteco? (possivelmente com outro nome... ;) )
  10. 10. Fim! @eduardomacan http://eduardo.macan.eng.br eduardomacan@gmail.com Obrigado!

×