MongoDB é um banco de dados NoSQL baseado em documentos, sem esquema, escalável e lançado como open source em 2009. Ele armazena dados em formato JSON em coleções e é usado por muitas empresas. Java pode se conectar ao MongoDB usando o driver oficial ou bibliotecas como Morphia e Spring Data para trabalhar com documentos em vez de tabelas relacionais.
2. MongoDB - o que é ?
• Banco de dados baseado em documentos
• classificado como NoSQL
• Sem schemas
• Sem transações
• Escalável
3. 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
4. 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.4.x - versão community +
Enterprise (auth, in-memory,compass) + MongoDB
Atlas (nuvem)
5. MongoDB – quem usa ?
http://www.mongodb.com/who-uses-mongodb
7. 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
8. MongoDB - o que é um documento?
• Representação da informação em formato JSON
• Linguagem usada é JavaScript
9. Exemplo NoSQL vs relacional
NOVO SISTEMA: JUGs do Brasil por região
Fonte: http://www.dfjug.org/jugs-brasil/
10. Exemplo NoSQL vs relacional
28 JUGs do Brasil por região
Fonte: http://www.dfjug.org/jugs-brasil/
17. Desvantagens do MongoDB
- sintaxe JavaScript não é trivial
- usar MongoDB pensando relacional
- uso errado de índices
- serviço do servidor é pesado
18. 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
19. 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
20. 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
21. Java + JSON + MongoDB
- Driver Java oficial
- JNoSQL Diana
- Morphia
- Spring Data
https://github.com/boaglio/mongodb-java-examples
Aceito sugestões!!!