Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Mongo on Rails
Search
Marcos Hack
July 13, 2012
Programming
38
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Mongo on Rails
Palestra 'Mongo On Rails' apresentada no evento MongoDB São Paulo em 2012-07-13.
Marcos Hack
July 13, 2012
Other Decks in Programming
See All in Programming
sbt 2.0: takeoff
eed3si9n
0
160
dotNET_vulnclicker_intro.pdf
deka_morita
0
140
AWSに止められる覚悟してますか?
morizo_1984
2
530
自サークルのIdPからログアウトできるようになるまで
taiseiue
1
140
ソニーのクラウド共通基盤の変遷とAI時代の開発スタイルに合わせた進化 / The Journey of Sony’s Common Cloud Platform and Its Evolution for AI-Native Development
kenjiyoneyama
0
270
Railsのためのパスキー実践入門 〜マルチテナントSaaSでの意思決定〜
utakaha
2
550
JAWS-UG 東京支部が始める、JAWS-UG支部コラボ / JAWS-UG lunchtime LT Collaboration
y0hgi
0
270
Domain-Driven Transformation
hschwentner
2
2.3k
APNsからLive Activityを開始する話
yumnumm
0
170
RAG の “R” を Swift で覗いてみる 〜「意味から探す」検索の仕組み〜
nao_randd
0
160
Herb in Rails 8.2: Your ERB views, now HTML-aware @ Rails World 2026, Austin, Texas
marcoroth
0
220
[2026-09-26]空論ジェネリックプロセス~テスト資産とAIで紡ぐ、再現可能なパフォーマンスチューニングの話~
tosite
0
270
Featured
See All Featured
A Modern Web Designer's Workflow
chriscoyier
699
190k
Git: the NoSQL Database
bkeepers
PRO
433
67k
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
260
Fantastic passwords and where to find them - at NoRuKo
philnash
53
4k
Amusing Abliteration
ianozsvald
1
350
Rails Girls Zürich Keynote
gr2m
96
14k
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
280
Writing Fast Ruby
sferik
630
63k
Color Theory Basics | Prateek | Gurzu
gurzu
1
490
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
5
820
Building the Perfect Custom Keyboard
takai
2
910
Building Adaptive Systems
keathley
44
3.2k
Transcript
Mongo On Rails Marcos Hack
[email protected]
http://engineering.abril.com.br/ MongoDB São Paulo
2012-07-12
Agenda Mongoid • Setup • Documentos • Persistência • Consultas
• Associações • Índices • Map/Reduce Cases Abril • Alexandria • Iba • Abril Educação • Click.à.Porter
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
3.0.0 (versão estável lançada em 8/7)
Mongoid Setup $ rails new catalog \ --skip-active-record $ bundle
install Gemfile
Mongoid Setup config/mongoid.yml $ rails g mongoid:config Formato alterado no
Mongoid ~> 3.0.0
Mongoid Documentos app/models/product.rb $ rails g model product
Mongoid Documentos app/models/product.rb Validações
Mongoid Documentos app/models/product.rb Atributos Dinâmicos config/mongoid.yml
Mongoid Documentos app/models/user.rb Atributos Protegidos
Mongoid Documentos app/models/product.rb Field Aliasing Somente no Mongoid ~> 3.0.0
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
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
Mongoid Consultas Criteria Encadeamento (Chaining) Avaliação atrasada (Lazy Evaluation) Cursores
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#
Mongoid Consultas Escopos Nomeados app/models/product.rb
Mongoid Consultas +Persisência Criteria + Modificações create build update update_all
delete_all destroy_all Criteria#
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
Mongoid Associações Embutido (embedded) (1:N) app/models/product.rb app/models/comment.rb
Mongoid Associações Embutido (embedded) (1:N)
Mongoid Associações Por Referência (1:N) app/models/product.rb app/models/category.rb
Mongoid Associações Por Referência (1:N) Mongoid ~> 3.0.0
Mongoid Associações Por Referência (N:N) app/models/product.rb app/models/category.rb
Mongoid Associações Por Referência (N:N)
Mongoid Map-Reduce Mongoid <= 2.4.11
Mongoid Map-Reduce Mongoid <= 2.4.11
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#
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
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
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
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
Mongo On Rails Marcos Hack
[email protected]
http://engineering.abril.com.br/ MongoDB São Paulo
2012-07-12