Aplicações Georreferenciadas com MongoDB

2,218 views
2,031 views

Published on

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.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,218
On SlideShare
0
From Embeds
0
Number of Embeds
184
Actions
Shares
0
Downloads
23
Comments
0
Likes
0
Embeds 0
No embeds

No notes for 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!

×