Michel Banagouro
Web Developer, LeanWork



https://slid.es/mbanagouro







O que é?











Até 27/08/2013
___________________

Objetivos




Flexibilidade
Desempenho
Alta Disponibilidade 
Escalabilidade 
Poderoso 
Fácil de usar

Mercado?




http://www.mongodb.com/leading-nosql-database

http://www.google.com/trends/

http://www.indeed.com/jobtrends

2. MongoDB

MongoDB Job Trends graph

Cases


Cases





Demo



  • Download  
  • Instalação
  • Mongo shell   







Flexibilidade

Relacional

Dinâmico

     

Terminologia



Database == Database

Table == Collection

Row = Document

Column == Attribute

JSON


   "name" : "Michel",   "registered" : true,   languages : [ "c#", "python", "ruby" ],
"address" : {  "city" : "Londrina", "state" : "PR" "country" : "Brasil" }, created_on : new Date()}

BSON

Binary JSON




http://bsonspec.org/

Demo



  • Insert
  • Query 
  • Update
  • Remove   







Desempenho







Alta Disponibilidade

Replication



Redundância 
Failover 
Leitura escalável















Demo



  • Replica Set Cluster
  • Failover 







Escalabilidade

Sharding


Sem joins

Sem transações

Escalabilidade horizontal

















Analytics


Aggregation

Framework


db.products.aggregate([
    {$group:
     {
         _id: {
	     "maker":"$manufacturer"
	 },
	 max_price:{$max:"$price"}
     }
    }
]) 

Demo






Tópicos

Adicionais

(mas não menos importante)

Monitoramento


MongoDB Monitoring Services (10gen)
https://mms.10gen.com/



Backup



MongoDB para MongoDB
Manualmente
mongodump
mongorestore

MongoDB para outras Fontes (json, csv, etc)
mongoimport
mongoexport

Backup


Securança




MongoDB SSL
MongoDB Gazzang
Authentication (Basic, Kerberos)
Roles

GridFS




File Storage
Photos, Videos, Documents, etc

case:

Drivers



C#
C++
Java
Ruby
Python
Node.js
Erlang
Pearl
...

Demo



  • C# + MongoDB
  • Python + MongoDB

Conclusão



Desenvolvedores / Arquitetos
Ágil / Fácil / Rápido

DBA's / devOps
Escalável, Automático, Tolerante a falhas

Executivos
Barato, rápido de implantar, analítico


?

Ebook

Desenvolvendo um blog com
ASP .NET MVC, MongoDB e Twitter Bootstrap


http://goo.gl/p45kg8
QRCode

Links



Documentação
http://www.mongodb.org/

Robomongo
http://robomongo.org/

Demos
https://www.dropbox.com/s/hxd4yy3h4f2x2gc/demos.zip


Made with Slides.com