Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Mongo on Rails

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.

Mongo on Rails

Palestra 'Mongo On Rails' apresentada no evento MongoDB São Paulo em 2012-07-13.

Avatar for Marcos Hack

Marcos Hack

July 13, 2012
Tweet

Other Decks in Programming

Transcript

  1. Agenda Mongoid •  Setup •  Documentos •  Persistência •  Consultas

    •  Associações •  Índices •  Map/Reduce Cases Abril •  Alexandria •  Iba •  Abril Educação •  Click.à.Porter
  2. 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
  3. 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 inc pop rename set unset bit add_to_set push push_all pull pull_all
  4. 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#
  5. Mongoid Consultas +Persisência Criteria – Modif. Atômicas Somente no Mongoid

    ~> 3.0.0 Criteria# inc pop rename set unset bit push pull pull_all add_to_set
  6. Mongoid Map-Reduce Mongoid ~> 3.0.0 <= 2.4.11 ~> 3.0.0 out

    counts emitted finalize input js_mode output reduced scope time MapReduce#
  7. Cases Alexandria •  Matérias •  Metadados de imagens e vídeos

    •  Concursos culturais •  Estabelecimentos ~ 300.000 documentos! •  Master/Slave •  Mongo 1.8 •  1x 12 núcleos e 96GB RAM •  1x um pouco menor como slave •  Cluster usando ReplicaSet •  Mongo 2.0.6 •  7 servidores
  8. Cases Loja Iba •  Metadados de publicações (~30.000 docs) • 

    Logs de transações e requests (~5mi docs) •  Mongo 2.0.6 / Mongoid 2.4.11 / MongoMapper •  2 servidores Master/Slave (publicações) •  1 servidor (logs/requests) •  Solução híbrida MySQL/MongoDB
  9. Cases •  Cadastro de escolas •  Campanhas de livros escolares

    •  Mongo 2.0.6 / Mongoid 3.0.0 •  2 servidores Master/Slave •  Solução 100% MongoDB Abril Educação
  10. Cases •  Tracking de eventos no site (~10mi docs) • 

    Mongo 1.8 / Mongoid 2.4.11 •  2 servidores Master/Slave •  Solução híbrida MySQL/MongoDB click.à.porter