Soumettre la recherche
Mettre en ligne
Mixin' it Up: Datastore_edition
•
0 j'aime
•
273 vues
SmartLogic
Suivre
Combining relational and NoSQL databases in a Rails app.
Lire moins
Lire la suite
Technologie
Signaler
Partager
Signaler
Partager
1 sur 41
Télécharger maintenant
Télécharger pour lire hors ligne
Recommandé
Indexing vector spaces graph search engines
Indexing vector spaces graph search engines
Kenzo Kabuto
[Djangocon2015] Demystifying mixins with Django
[Djangocon2015] Demystifying mixins with Django
Ana Balica
Making our spaces more inclusive
Making our spaces more inclusive
jamiehannaford
Django Patterns - Pycon India 2014
Django Patterns - Pycon India 2014
arunvr
Velan Group 2012
Velan Group 2012
Evgeny Morozov
The current & future trends on ultra high
The current & future trends on ultra high
chandan kumar
A hybrid vehicle configuration with zero emission
A hybrid vehicle configuration with zero emission
Kichu Joy
Explosion-proof ATEx Ex-d range
Explosion-proof ATEx Ex-d range
Sirena Signaling Devices
Recommandé
Indexing vector spaces graph search engines
Indexing vector spaces graph search engines
Kenzo Kabuto
[Djangocon2015] Demystifying mixins with Django
[Djangocon2015] Demystifying mixins with Django
Ana Balica
Making our spaces more inclusive
Making our spaces more inclusive
jamiehannaford
Django Patterns - Pycon India 2014
Django Patterns - Pycon India 2014
arunvr
Velan Group 2012
Velan Group 2012
Evgeny Morozov
The current & future trends on ultra high
The current & future trends on ultra high
chandan kumar
A hybrid vehicle configuration with zero emission
A hybrid vehicle configuration with zero emission
Kichu Joy
Explosion-proof ATEx Ex-d range
Explosion-proof ATEx Ex-d range
Sirena Signaling Devices
DeepSearch_Project_Report
DeepSearch_Project_Report
Urjit Patel
Resources and relationships at front-end
Resources and relationships at front-end
Wingify Engineering
moma-django overview --> Django + MongoDB: building a custom ORM layer
moma-django overview --> Django + MongoDB: building a custom ORM layer
Gadi Oren
Automating With Excel An Object Oriented Approach
Automating With Excel An Object Oriented Approach
Razorleaf Corporation
Python Homework Help
Python Homework Help
Programming Homework Help
Getting a job in industry
Getting a job in industry
Austin Baird
Top 10 Interview Questions for Coding Job.docx
Top 10 Interview Questions for Coding Job.docx
Surendra Gusain
Top 10 Interview Questions for Coding Job.docx
Top 10 Interview Questions for Coding Job.docx
Surendra Gusain
ItemMirror, XML & The Promise of Information Integration
ItemMirror, XML & The Promise of Information Integration
keepingfoundthingsfound
Attacat- Turing Festival presentation August 16th 2016
Attacat- Turing Festival presentation August 16th 2016
Oliver Marriage
PyData SF 2016 --- Moving forward through the darkness
PyData SF 2016 --- Moving forward through the darkness
Chia-Chi Chang
Discovering User's Topics of Interest in Recommender Systems @ Meetup Machine...
Discovering User's Topics of Interest in Recommender Systems @ Meetup Machine...
Gabriel Moreira
Towards Automatic Analysis of Online Discussions among Hong Kong Students
Towards Automatic Analysis of Online Discussions among Hong Kong Students
CITE
Automating Tinder w/ Eigenfaces and StanfordNLP
Automating Tinder w/ Eigenfaces and StanfordNLP
Justin Long
Exploring French Job Ads, Lynn Cherny
Exploring French Job Ads, Lynn Cherny
Pôle Systematic Paris-Region
NoSQL (Not Only SQL)
NoSQL (Not Only SQL)
Pouria Amirian
MongoDB World 2019: Don't Panic - The Hitchhiker's Guide to the MongoDB Galaxy
MongoDB World 2019: Don't Panic - The Hitchhiker's Guide to the MongoDB Galaxy
MongoDB
Software Requirement Analysis and Thinking Process towards a good Architecture
Software Requirement Analysis and Thinking Process towards a good Architecture
mahmud05
What would Jesus Developer do?
What would Jesus Developer do?
Lukáš Čech
SEO meetup Utrecht
SEO meetup Utrecht
Roy Huiskes
Writing Game Servers with Elixir
Writing Game Servers with Elixir
SmartLogic
All Aboard The Stateful Train
All Aboard The Stateful Train
SmartLogic
Contenu connexe
Similaire à Mixin' it Up: Datastore_edition
DeepSearch_Project_Report
DeepSearch_Project_Report
Urjit Patel
Resources and relationships at front-end
Resources and relationships at front-end
Wingify Engineering
moma-django overview --> Django + MongoDB: building a custom ORM layer
moma-django overview --> Django + MongoDB: building a custom ORM layer
Gadi Oren
Automating With Excel An Object Oriented Approach
Automating With Excel An Object Oriented Approach
Razorleaf Corporation
Python Homework Help
Python Homework Help
Programming Homework Help
Getting a job in industry
Getting a job in industry
Austin Baird
Top 10 Interview Questions for Coding Job.docx
Top 10 Interview Questions for Coding Job.docx
Surendra Gusain
Top 10 Interview Questions for Coding Job.docx
Top 10 Interview Questions for Coding Job.docx
Surendra Gusain
ItemMirror, XML & The Promise of Information Integration
ItemMirror, XML & The Promise of Information Integration
keepingfoundthingsfound
Attacat- Turing Festival presentation August 16th 2016
Attacat- Turing Festival presentation August 16th 2016
Oliver Marriage
PyData SF 2016 --- Moving forward through the darkness
PyData SF 2016 --- Moving forward through the darkness
Chia-Chi Chang
Discovering User's Topics of Interest in Recommender Systems @ Meetup Machine...
Discovering User's Topics of Interest in Recommender Systems @ Meetup Machine...
Gabriel Moreira
Towards Automatic Analysis of Online Discussions among Hong Kong Students
Towards Automatic Analysis of Online Discussions among Hong Kong Students
CITE
Automating Tinder w/ Eigenfaces and StanfordNLP
Automating Tinder w/ Eigenfaces and StanfordNLP
Justin Long
Exploring French Job Ads, Lynn Cherny
Exploring French Job Ads, Lynn Cherny
Pôle Systematic Paris-Region
NoSQL (Not Only SQL)
NoSQL (Not Only SQL)
Pouria Amirian
MongoDB World 2019: Don't Panic - The Hitchhiker's Guide to the MongoDB Galaxy
MongoDB World 2019: Don't Panic - The Hitchhiker's Guide to the MongoDB Galaxy
MongoDB
Software Requirement Analysis and Thinking Process towards a good Architecture
Software Requirement Analysis and Thinking Process towards a good Architecture
mahmud05
What would Jesus Developer do?
What would Jesus Developer do?
Lukáš Čech
SEO meetup Utrecht
SEO meetup Utrecht
Roy Huiskes
Similaire à Mixin' it Up: Datastore_edition
(20)
DeepSearch_Project_Report
DeepSearch_Project_Report
Resources and relationships at front-end
Resources and relationships at front-end
moma-django overview --> Django + MongoDB: building a custom ORM layer
moma-django overview --> Django + MongoDB: building a custom ORM layer
Automating With Excel An Object Oriented Approach
Automating With Excel An Object Oriented Approach
Python Homework Help
Python Homework Help
Getting a job in industry
Getting a job in industry
Top 10 Interview Questions for Coding Job.docx
Top 10 Interview Questions for Coding Job.docx
Top 10 Interview Questions for Coding Job.docx
Top 10 Interview Questions for Coding Job.docx
ItemMirror, XML & The Promise of Information Integration
ItemMirror, XML & The Promise of Information Integration
Attacat- Turing Festival presentation August 16th 2016
Attacat- Turing Festival presentation August 16th 2016
PyData SF 2016 --- Moving forward through the darkness
PyData SF 2016 --- Moving forward through the darkness
Discovering User's Topics of Interest in Recommender Systems @ Meetup Machine...
Discovering User's Topics of Interest in Recommender Systems @ Meetup Machine...
Towards Automatic Analysis of Online Discussions among Hong Kong Students
Towards Automatic Analysis of Online Discussions among Hong Kong Students
Automating Tinder w/ Eigenfaces and StanfordNLP
Automating Tinder w/ Eigenfaces and StanfordNLP
Exploring French Job Ads, Lynn Cherny
Exploring French Job Ads, Lynn Cherny
NoSQL (Not Only SQL)
NoSQL (Not Only SQL)
MongoDB World 2019: Don't Panic - The Hitchhiker's Guide to the MongoDB Galaxy
MongoDB World 2019: Don't Panic - The Hitchhiker's Guide to the MongoDB Galaxy
Software Requirement Analysis and Thinking Process towards a good Architecture
Software Requirement Analysis and Thinking Process towards a good Architecture
What would Jesus Developer do?
What would Jesus Developer do?
SEO meetup Utrecht
SEO meetup Utrecht
Plus de SmartLogic
Writing Game Servers with Elixir
Writing Game Servers with Elixir
SmartLogic
All Aboard The Stateful Train
All Aboard The Stateful Train
SmartLogic
DC |> Elixir Meetup - Going off the Rails into Elixir - Dan Ivovich
DC |> Elixir Meetup - Going off the Rails into Elixir - Dan Ivovich
SmartLogic
Monitoring Your Elixir Application with Prometheus
Monitoring Your Elixir Application with Prometheus
SmartLogic
Going Multi-Node
Going Multi-Node
SmartLogic
Kubernetes and docker
Kubernetes and docker
SmartLogic
Serializing Value Objects-Ara Hacopian
Serializing Value Objects-Ara Hacopian
SmartLogic
Guide to food foraging by SmartLogic's Kei Ellerbrock
Guide to food foraging by SmartLogic's Kei Ellerbrock
SmartLogic
Introduction to Type Script by Sam Goldman, SmartLogic
Introduction to Type Script by Sam Goldman, SmartLogic
SmartLogic
How SmartLogic Uses Chef-Dan Ivovich
How SmartLogic Uses Chef-Dan Ivovich
SmartLogic
A Few Interesting Things in Apple's Swift Programming Language
A Few Interesting Things in Apple's Swift Programming Language
SmartLogic
Effective ActiveRecord
Effective ActiveRecord
SmartLogic
An Introduction to Reactive Cocoa
An Introduction to Reactive Cocoa
SmartLogic
iOS Development Methodology
iOS Development Methodology
SmartLogic
CSS Preprocessors to the Rescue!
CSS Preprocessors to the Rescue!
SmartLogic
Deploying Rails Apps with Chef and Capistrano
Deploying Rails Apps with Chef and Capistrano
SmartLogic
From Slacker to Hacker, Practical Tips for Learning to Code
From Slacker to Hacker, Practical Tips for Learning to Code
SmartLogic
The Language of Abstraction in Software Development
The Language of Abstraction in Software Development
SmartLogic
Android Testing: An Overview
Android Testing: An Overview
SmartLogic
Intro to DTCoreText: Moving Past UIWebView | iOS Development
Intro to DTCoreText: Moving Past UIWebView | iOS Development
SmartLogic
Plus de SmartLogic
(20)
Writing Game Servers with Elixir
Writing Game Servers with Elixir
All Aboard The Stateful Train
All Aboard The Stateful Train
DC |> Elixir Meetup - Going off the Rails into Elixir - Dan Ivovich
DC |> Elixir Meetup - Going off the Rails into Elixir - Dan Ivovich
Monitoring Your Elixir Application with Prometheus
Monitoring Your Elixir Application with Prometheus
Going Multi-Node
Going Multi-Node
Kubernetes and docker
Kubernetes and docker
Serializing Value Objects-Ara Hacopian
Serializing Value Objects-Ara Hacopian
Guide to food foraging by SmartLogic's Kei Ellerbrock
Guide to food foraging by SmartLogic's Kei Ellerbrock
Introduction to Type Script by Sam Goldman, SmartLogic
Introduction to Type Script by Sam Goldman, SmartLogic
How SmartLogic Uses Chef-Dan Ivovich
How SmartLogic Uses Chef-Dan Ivovich
A Few Interesting Things in Apple's Swift Programming Language
A Few Interesting Things in Apple's Swift Programming Language
Effective ActiveRecord
Effective ActiveRecord
An Introduction to Reactive Cocoa
An Introduction to Reactive Cocoa
iOS Development Methodology
iOS Development Methodology
CSS Preprocessors to the Rescue!
CSS Preprocessors to the Rescue!
Deploying Rails Apps with Chef and Capistrano
Deploying Rails Apps with Chef and Capistrano
From Slacker to Hacker, Practical Tips for Learning to Code
From Slacker to Hacker, Practical Tips for Learning to Code
The Language of Abstraction in Software Development
The Language of Abstraction in Software Development
Android Testing: An Overview
Android Testing: An Overview
Intro to DTCoreText: Moving Past UIWebView | iOS Development
Intro to DTCoreText: Moving Past UIWebView | iOS Development
Dernier
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
sudhanshuwaghmare1
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Jago de Vreede
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Orbitshub
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Jeffrey Haguewood
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
Andrey Devyatkin
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
Martijn de Jong
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
ThousandEyes
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
apidays
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
apidays
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
Rustici Software
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
Zilliz
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
apidays
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Juan lago vázquez
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
Sandro Moreira
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Angeliki Cooney
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Orbitshub
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
Product Anonymous
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
DianaGray10
Dernier
(20)
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Mixin' it Up: Datastore_edition
1.
Mixin' it Up: Datastore Edition
Chris Cahoon Eric Oestrich
2.
3.
Using only an object
store on a largeish app and then remembering you can use more than one database in a system
4.
The (Central) Problem Hierarchical
forms & responses
5.
Survey
Response Question (text) Answer Question Group Answer Group Question (date) Answer (date) Question (phone #) Answer (phone #)
6.
NUMBERS Lots of questions Lots
of forms Lots of users Lots of responses = Lots of queries
7.
"We need an object
store!"
8.
MONGOID! feels like ActiveRecord
inside MongoDB
9.
10.
"This form belongs_to user!"
11.
"Mongoid has helpers
for relations?!"
12.
Response
Survey User Not bad.
13.
(months pass...)
14.
15.
User
Survey Campaign (etc.) (very etc.) Organization Response Oh.
16.
17.
Mongoid works perfectly for
those two models
18.
...but everything else is
relational!
19.
20.
There are problems with
object stores
21.
... used like
a relational db (there are things we missed from relational DBs)
22.
Relations
23.
Can only query one
collection at a time
24.
Denormalization
25.
No foreign keys
26.
I accidentally the
object
27.
Can I have
my cake? and eat it too?
28.
29.
Just Mongoid
30.
Querying # 2 queries surveys
= Survey.where(:campaign_id.in => @user.campaigns.map(&:id)) survey_ids = surveys.map(&:id) # + 1 query Response.where(:survey_id.in => survey_ids, :complete => true).first.answers # = 3 total queries for search, not chainable
31.
Interlude
32.
33.
Mongoid & ActiveRecord
34.
Bridging the gap
35.
36.
Search with SQL,
store with Mongo # 1 query Response. joins(:survey, :campaign). where('complete' => true, "campaigns.user_id" => @user.id). first. answer_collection # = 1 total query for search, chainable
37.
38.
39.
Should we gemify
this?
40.
GitHub: https://github.com/oestrich/mixin_it_up_datastore (look at the
branches)
41.
Thanks
Télécharger maintenant