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

Mongo on Rails

Mongo on Rails

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

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