3. MongoDB - o que é ?
• Banco de dados baseado em documentos
• classifcado como NoSQL
• Sem schemas
• Sem transações *
• Escalável
4. MongoDB – um pouco de história
1995 - Dwight funda a double click
2005 - vende ( Google compra em 2007)
2007 - Dwight funda a 10gen junto com Eliot
2007 - monta uma solução para concorrer com a
nuvem do Google:
App Engine chamava ED (Elliot + Dwight)
Banco de dados chamava P
5. MongoDB – um pouco de história
2008 - mudaram de P para MongoDB (Humongous)
2009 - vira open source o/
2010 - MongoDB vira production ready
2017 - Release 3 - versão community + Enterprise
(auth, in-memory,compass) + MongoDB Atlas
(nuvem)
2018 – Release 4 – suporte a transações
6. MongoDB – quem usa ?
http://www.mongodb.com/who-uses-mongodb
8. Comparando conceitos...
Baseado em tabelas Baseado em documentos
Tabela Collection
Coluna Campo
Linha / registro sem limite de
tamanho
Documento / registro limitados em
16Mb
RAC Replica Set
Particionamento Sharding
Raw Device GridFS
9. MongoDB - o que é um documento?
• Representação da informação em formato JSON
• Linguagem usada é JavaScript
10. Exemplo NoSQL vs relacional
NOVO SISTEMA: JUGs do Brasil por região
Fonte: http://www.dfjug.org/jugs-brasil/
11. Exemplo NoSQL vs relacional
28 JUGs do Brasil por região
Fonte: http://www.dfjug.org/jugs-brasil/
18. Desvantagens do MongoDB
- sintaxe JavaScript não é trivial
- usar MongoDB pensando relacional
- uso errado de índices
- serviço do servidor é pesado
19. Vantagens do MongoDB
- banco de dados feito para desenvolvedor (quase
não precisa de DBA)
- JSON em todo lugar
- foco na app e nao no banco de dados
- velocidade
- escalável
20. Vantagens do MongoDB
- comando upsert e update multiple
- full text search
- busca por índice geospatial -
https://github.com/boaglio/mongodb-java-geospatial-springdata-casadocodigo
- documento com validade
- capped collections
21. Dicas para iniciantes
- Use a ferramenta Robomongo - https://robomongo.org
- Pense bem no schema design
- Treinamentos gratuitos:
https://university.mongodb.com/courses/catalog
M101: Java , NodeJS , .Net, Python
22. Java + JSON + MongoDB
- Driver Java oficial
- JNoSQL Diana
- Morphia
- Spring Data
https://github.com/boaglio/mongodb-java-examples
Aceito sugestões!!!