Slide 1

Slide 1 text

Mongo On Rails Marcos Hack [email protected] http://engineering.abril.com.br/ MongoDB São Paulo 2012-07-12

Slide 2

Slide 2 text

Agenda •  Mongoid •  Setup •  Documentos •  Persistência •  Consultas •  Associações •  Map/Reduce •  Exemplo •  Catálogo de Produtos •  Cases Abril

Slide 3

Slide 3 text

Mongoid MongoDB v2.0.6 Rails Ruby 1.9.3-p194 3.2.6 2.4.11 (http://two.mongoid.org/) https://github.com/marcoshack/mongo_on_rails

Slide 4

Slide 4 text

Mongoid Setup $ rails new catalog \ --skip-active-record $ bundle install Gemfile

Slide 5

Slide 5 text

Mongoid Setup config/mongoid.yml $ rails g mongoid:config Formato alterado no Mongoid ~> 3.0.0

Slide 6

Slide 6 text

Mongoid Documentos app/models/product.rb $ rails g model product

Slide 7

Slide 7 text

Mongoid Documentos app/models/product.rb Validações

Slide 8

Slide 8 text

Mongoid Documentos app/models/product.rb Atributos Dinâmicos config/mongoid.yml

Slide 9

Slide 9 text

Mongoid Documentos app/models/user.rb Atributos Protegidos

Slide 10

Slide 10 text

Mongoid Documentos app/models/product.rb Field Aliasing Somente no Mongoid ~> 3.0.0.rc

Slide 11

Slide 11 text

Mongoid Persistência Model# Persistência Padrão create create destroy_all delete_all Model. save save! delete destroy update_attributes update_attributes! update_attribute

Slide 12

Slide 12 text

Mongoid Persistência Model# Persistência Atômica Para operações atômicas usar o nome real dos campos, e não seus aliases Mongoid ~> 3.0.0.rc inc pop rename set unset bit add_to_set push push_all pull pull_all

Slide 13

Slide 13 text

Mongoid Consultas Criteria Encadeamento (Chaining) Avaliação atrasada (Lazy Evaluation) Cursores índices

Slide 14

Slide 14 text

Mongoid Consultas Criteria all_in all_of also_in any_in any_of asc desc excludes includes limit near not_in only order_by skip where whithout Model|Criteria. and distinct Criteria#

Slide 15

Slide 15 text

Mongoid Consultas Escopos Nomeados app/models/product.rb

Slide 16

Slide 16 text

Mongoid Consultas +Persisência Criteria + Modificações create build update update_all delete_all destroy_all Criteria#

Slide 17

Slide 17 text

Mongoid Consultas +Persisência Criteria – Modif. Atômicas Somente no Mongoid ~> 3.0.0.rc Criteria# inc pop rename set unset bit push pull pull_all add_to_set

Slide 18

Slide 18 text

Mongoid Associações Embutido (embedded) (1:N) app/models/product.rb app/models/comment.rb

Slide 19

Slide 19 text

Mongoid Associações Embutido (embedded) (1:N)

Slide 20

Slide 20 text

Mongoid Associações Por Referência (1:N) app/models/product.rb app/models/category.rb

Slide 21

Slide 21 text

Mongoid Associações Por Referência (1:N)

Slide 22

Slide 22 text

Mongoid Associações Por Referência (N:N)

Slide 23

Slide 23 text

Mongoid Map-Reduce

Slide 24

Slide 24 text

Mongo On Rails Marcos Hack [email protected] http://engineering.abril.com.br/ MongoDB São Paulo 2012-07-12

Slide 25

Slide 25 text

No content

Slide 26

Slide 26 text

No content

Slide 27

Slide 27 text

Lorem Ipsum Dolor