SlideShare a Scribd company logo
Lean and mean MongoDB
 or why MongoDB is good for start ups
/whois olegp
Lean and mean MongoDB
/whois olegp
●   doing startups since 2000
    –   RIOT-E
●   tech DD for investors since 2008
●   Startup Sauna coach
●   new venture: StartHQ
Web apps 101
Lean and mean MongoDB
Web apps 101
●   REST API centric design
●   One primary data store
    –   Except blobs
●   No premature optimization
    –   e.g. caching
The Contenders
Lean and mean MongoDB
Background Reading
●   “How FriendFeed uses MySQL to store
    schemaless data”
    –   “mariadb dynamic columns”

●   “PostgreSQL as a schemaless database”
The Pros
Lean and mean MongoDB
The Pros
●   Simpler schema design
    –   Fewer many to one relationships
    –   Design is part of development, not separate
●   No DB setup step
●   No DB migrations *
●   No ORMs
●   JSON as query language
Lean and mean MongoDB
Hosting
●   Amazon RDS: from $18
●   Heroku Postgres: from $10
●   MongoHQ & MongoLab: from FREE
Database as a Service
Lean and mean MongoDB
Database as a Service
●   Web admin FTW
    –   Saves you building your own
●   No SSL
    –   But on AWS you can't sniff traffic
●   Expensive backups
    –   But you can easily roll your own
Some Code

return db.getCollection("apps").find({
  nameLowerCase:{
    $regex:utils.prettify(request.queryParams.term)
  },
  verified:true
}, {
  name:true, url:true
}).sort({'extractors.social.score':-1})
  .limit(10).toArray().map(function(app) {
  return {
    label:app.name,
    value:app.url
  };
});
Tools

●   10gen MMS
●   Metrica
●   Nodetime
Getting Started
Lean and mean MongoDB
Getting Started
●   try.mongodb.org
●   “dailyjs lmaw”
●   olegp/notes & olegp/tokenize
Summary
●   Optimize for ease of development
●   Do design your schema
●   Do not prematurely optimize
●   Have fun!
Thanks!
  @olegpodsechin
starthq.com/apps/?q=mongodb
Ad

More Related Content

What's hot (19)

Pump up the JAM with Gatsby (2019)
Pump up the JAM with Gatsby (2019)Pump up the JAM with Gatsby (2019)
Pump up the JAM with Gatsby (2019)
Stefan Adolf
 
Part Two: Building Web Apps with the MERN Stack
Part Two: Building Web Apps with the MERN StackPart Two: Building Web Apps with the MERN Stack
Part Two: Building Web Apps with the MERN Stack
MongoDB
 
MongoDB for Oracle Experts - OUGF Harmony 2014
MongoDB for Oracle Experts - OUGF Harmony 2014 MongoDB for Oracle Experts - OUGF Harmony 2014
MongoDB for Oracle Experts - OUGF Harmony 2014
Henrik Ingo
 
CouchDB: replicated data store for distributed proxy server
CouchDB: replicated data store for distributed proxy serverCouchDB: replicated data store for distributed proxy server
CouchDB: replicated data store for distributed proxy server
tkramar
 
Ruby On Rails
Ruby On RailsRuby On Rails
Ruby On Rails
Sawood Alam
 
Intro Couchdb
Intro CouchdbIntro Couchdb
Intro Couchdb
selvamanisampath
 
Decoupled (Headless) Drupal
Decoupled (Headless) DrupalDecoupled (Headless) Drupal
Decoupled (Headless) Drupal
Daniel Stout
 
Wwc london-perf-apps
Wwc london-perf-appsWwc london-perf-apps
Wwc london-perf-apps
Claire Tran
 
web optimizations
web optimizationsweb optimizations
web optimizations
Georgi Tachev
 
Charla ro 2
Charla ro 2Charla ro 2
Charla ro 2
GeneXus
 
Progressive web applications
Progressive web applicationsProgressive web applications
Progressive web applications
Tom Martin
 
Vlad zelinschi optimizing the critical rendering path
Vlad zelinschi   optimizing the critical rendering pathVlad zelinschi   optimizing the critical rendering path
Vlad zelinschi optimizing the critical rendering path
Codecamp Romania
 
Analyzing and processing FInancial Market Data on AWS with Kinesis - AWS Pop ...
Analyzing and processing FInancial Market Data on AWS with Kinesis - AWS Pop ...Analyzing and processing FInancial Market Data on AWS with Kinesis - AWS Pop ...
Analyzing and processing FInancial Market Data on AWS with Kinesis - AWS Pop ...
Florian Benz
 
Gatsby (Code.Talks) 2019
Gatsby (Code.Talks) 2019Gatsby (Code.Talks) 2019
Gatsby (Code.Talks) 2019
Stefan Adolf
 
A socially Geo-localized Web
A socially Geo-localized WebA socially Geo-localized Web
A socially Geo-localized Web
Nuno Khan
 
A faster web
A faster webA faster web
A faster web
Bakani Pilime
 
GR8Conf 2011: Building Progressive UIs with Grails
GR8Conf 2011: Building Progressive UIs with GrailsGR8Conf 2011: Building Progressive UIs with Grails
GR8Conf 2011: Building Progressive UIs with Grails
GR8Conf
 
Rapid Application Development with MEAN Stack
Rapid Application Development with MEAN StackRapid Application Development with MEAN Stack
Rapid Application Development with MEAN Stack
Avinash Kaza
 
Introduction to Javascript
Introduction to JavascriptIntroduction to Javascript
Introduction to Javascript
foOfys Solutions
 
Pump up the JAM with Gatsby (2019)
Pump up the JAM with Gatsby (2019)Pump up the JAM with Gatsby (2019)
Pump up the JAM with Gatsby (2019)
Stefan Adolf
 
Part Two: Building Web Apps with the MERN Stack
Part Two: Building Web Apps with the MERN StackPart Two: Building Web Apps with the MERN Stack
Part Two: Building Web Apps with the MERN Stack
MongoDB
 
MongoDB for Oracle Experts - OUGF Harmony 2014
MongoDB for Oracle Experts - OUGF Harmony 2014 MongoDB for Oracle Experts - OUGF Harmony 2014
MongoDB for Oracle Experts - OUGF Harmony 2014
Henrik Ingo
 
CouchDB: replicated data store for distributed proxy server
CouchDB: replicated data store for distributed proxy serverCouchDB: replicated data store for distributed proxy server
CouchDB: replicated data store for distributed proxy server
tkramar
 
Decoupled (Headless) Drupal
Decoupled (Headless) DrupalDecoupled (Headless) Drupal
Decoupled (Headless) Drupal
Daniel Stout
 
Wwc london-perf-apps
Wwc london-perf-appsWwc london-perf-apps
Wwc london-perf-apps
Claire Tran
 
Charla ro 2
Charla ro 2Charla ro 2
Charla ro 2
GeneXus
 
Progressive web applications
Progressive web applicationsProgressive web applications
Progressive web applications
Tom Martin
 
Vlad zelinschi optimizing the critical rendering path
Vlad zelinschi   optimizing the critical rendering pathVlad zelinschi   optimizing the critical rendering path
Vlad zelinschi optimizing the critical rendering path
Codecamp Romania
 
Analyzing and processing FInancial Market Data on AWS with Kinesis - AWS Pop ...
Analyzing and processing FInancial Market Data on AWS with Kinesis - AWS Pop ...Analyzing and processing FInancial Market Data on AWS with Kinesis - AWS Pop ...
Analyzing and processing FInancial Market Data on AWS with Kinesis - AWS Pop ...
Florian Benz
 
Gatsby (Code.Talks) 2019
Gatsby (Code.Talks) 2019Gatsby (Code.Talks) 2019
Gatsby (Code.Talks) 2019
Stefan Adolf
 
A socially Geo-localized Web
A socially Geo-localized WebA socially Geo-localized Web
A socially Geo-localized Web
Nuno Khan
 
GR8Conf 2011: Building Progressive UIs with Grails
GR8Conf 2011: Building Progressive UIs with GrailsGR8Conf 2011: Building Progressive UIs with Grails
GR8Conf 2011: Building Progressive UIs with Grails
GR8Conf
 
Rapid Application Development with MEAN Stack
Rapid Application Development with MEAN StackRapid Application Development with MEAN Stack
Rapid Application Development with MEAN Stack
Avinash Kaza
 
Introduction to Javascript
Introduction to JavascriptIntroduction to Javascript
Introduction to Javascript
foOfys Solutions
 

Similar to Lean and mean MongoDB (20)

kranonit S06E01 Игорь Цинько: High load
kranonit S06E01 Игорь Цинько: High loadkranonit S06E01 Игорь Цинько: High load
kranonit S06E01 Игорь Цинько: High load
Krivoy Rog IT Community
 
Building RESTtful services in MEAN
Building RESTtful services in MEANBuilding RESTtful services in MEAN
Building RESTtful services in MEAN
Madhukara Phatak
 
Mean stack
Mean stackMean stack
Mean stack
RavikantGautam8
 
Deploying Perl apps on dotCloud
Deploying Perl apps on dotCloudDeploying Perl apps on dotCloud
Deploying Perl apps on dotCloud
daoswald
 
Write less (code) and build more with serverless
Write less (code) and build more with serverlessWrite less (code) and build more with serverless
Write less (code) and build more with serverless
Dhaval Nagar
 
Creating a custom API for a headless Drupal
Creating a custom API for a headless DrupalCreating a custom API for a headless Drupal
Creating a custom API for a headless Drupal
Exove
 
Not Your Father’s Web App: The Cloud-Native Architecture of images.nasa.gov
Not Your Father’s Web App: The Cloud-Native Architecture of images.nasa.govNot Your Father’s Web App: The Cloud-Native Architecture of images.nasa.gov
Not Your Father’s Web App: The Cloud-Native Architecture of images.nasa.gov
Chris Shenton
 
Spark Workflow Management
Spark Workflow ManagementSpark Workflow Management
Spark Workflow Management
Romi Kuntsman
 
Cloud arch patterns
Cloud arch patternsCloud arch patterns
Cloud arch patterns
Corey Huinker
 
Jumpstart your idea with AWS Serverless [Oct 2020]
Jumpstart your idea with AWS Serverless [Oct 2020]Jumpstart your idea with AWS Serverless [Oct 2020]
Jumpstart your idea with AWS Serverless [Oct 2020]
Dhaval Nagar
 
Traveloka's journey to no ops streaming analytics
Traveloka's journey to no ops streaming analyticsTraveloka's journey to no ops streaming analytics
Traveloka's journey to no ops streaming analytics
Rendy Bambang Junior
 
Serverless Big Data Architecture on Google Cloud Platform at Credit OK
Serverless Big Data Architecture on Google Cloud Platform at Credit OKServerless Big Data Architecture on Google Cloud Platform at Credit OK
Serverless Big Data Architecture on Google Cloud Platform at Credit OK
Kriangkrai Chaonithi
 
Laskar: High-Velocity GraphQL & Lambda-based Software Development Model
Laskar: High-Velocity GraphQL & Lambda-based Software Development ModelLaskar: High-Velocity GraphQL & Lambda-based Software Development Model
Laskar: High-Velocity GraphQL & Lambda-based Software Development Model
Garindra Prahandono
 
Seo for single page applications
Seo for single page applicationsSeo for single page applications
Seo for single page applications
JustinGillespie12
 
Evolution of DBA in the Cloud Era
 Evolution of DBA in the Cloud Era Evolution of DBA in the Cloud Era
Evolution of DBA in the Cloud Era
Mydbops
 
Web App Prototypes with Google App Engine
Web App Prototypes with Google App EngineWeb App Prototypes with Google App Engine
Web App Prototypes with Google App Engine
Vlad Filippov
 
Postgres-XC as a Key Value Store Compared To MongoDB
Postgres-XC as a Key Value Store Compared To MongoDBPostgres-XC as a Key Value Store Compared To MongoDB
Postgres-XC as a Key Value Store Compared To MongoDB
Mason Sharp
 
Going Serverless with AWS Lambda at ReportGarden
Going Serverless with AWS Lambda at ReportGardenGoing Serverless with AWS Lambda at ReportGarden
Going Serverless with AWS Lambda at ReportGarden
Jay Gandhi
 
The great migration embracing serverless first
The great migration  embracing serverless first The great migration  embracing serverless first
The great migration embracing serverless first
AngelaTimofte1
 
Dust.js
Dust.jsDust.js
Dust.js
Yevgeniy Brikman
 
kranonit S06E01 Игорь Цинько: High load
kranonit S06E01 Игорь Цинько: High loadkranonit S06E01 Игорь Цинько: High load
kranonit S06E01 Игорь Цинько: High load
Krivoy Rog IT Community
 
Building RESTtful services in MEAN
Building RESTtful services in MEANBuilding RESTtful services in MEAN
Building RESTtful services in MEAN
Madhukara Phatak
 
Deploying Perl apps on dotCloud
Deploying Perl apps on dotCloudDeploying Perl apps on dotCloud
Deploying Perl apps on dotCloud
daoswald
 
Write less (code) and build more with serverless
Write less (code) and build more with serverlessWrite less (code) and build more with serverless
Write less (code) and build more with serverless
Dhaval Nagar
 
Creating a custom API for a headless Drupal
Creating a custom API for a headless DrupalCreating a custom API for a headless Drupal
Creating a custom API for a headless Drupal
Exove
 
Not Your Father’s Web App: The Cloud-Native Architecture of images.nasa.gov
Not Your Father’s Web App: The Cloud-Native Architecture of images.nasa.govNot Your Father’s Web App: The Cloud-Native Architecture of images.nasa.gov
Not Your Father’s Web App: The Cloud-Native Architecture of images.nasa.gov
Chris Shenton
 
Spark Workflow Management
Spark Workflow ManagementSpark Workflow Management
Spark Workflow Management
Romi Kuntsman
 
Jumpstart your idea with AWS Serverless [Oct 2020]
Jumpstart your idea with AWS Serverless [Oct 2020]Jumpstart your idea with AWS Serverless [Oct 2020]
Jumpstart your idea with AWS Serverless [Oct 2020]
Dhaval Nagar
 
Traveloka's journey to no ops streaming analytics
Traveloka's journey to no ops streaming analyticsTraveloka's journey to no ops streaming analytics
Traveloka's journey to no ops streaming analytics
Rendy Bambang Junior
 
Serverless Big Data Architecture on Google Cloud Platform at Credit OK
Serverless Big Data Architecture on Google Cloud Platform at Credit OKServerless Big Data Architecture on Google Cloud Platform at Credit OK
Serverless Big Data Architecture on Google Cloud Platform at Credit OK
Kriangkrai Chaonithi
 
Laskar: High-Velocity GraphQL & Lambda-based Software Development Model
Laskar: High-Velocity GraphQL & Lambda-based Software Development ModelLaskar: High-Velocity GraphQL & Lambda-based Software Development Model
Laskar: High-Velocity GraphQL & Lambda-based Software Development Model
Garindra Prahandono
 
Seo for single page applications
Seo for single page applicationsSeo for single page applications
Seo for single page applications
JustinGillespie12
 
Evolution of DBA in the Cloud Era
 Evolution of DBA in the Cloud Era Evolution of DBA in the Cloud Era
Evolution of DBA in the Cloud Era
Mydbops
 
Web App Prototypes with Google App Engine
Web App Prototypes with Google App EngineWeb App Prototypes with Google App Engine
Web App Prototypes with Google App Engine
Vlad Filippov
 
Postgres-XC as a Key Value Store Compared To MongoDB
Postgres-XC as a Key Value Store Compared To MongoDBPostgres-XC as a Key Value Store Compared To MongoDB
Postgres-XC as a Key Value Store Compared To MongoDB
Mason Sharp
 
Going Serverless with AWS Lambda at ReportGarden
Going Serverless with AWS Lambda at ReportGardenGoing Serverless with AWS Lambda at ReportGarden
Going Serverless with AWS Lambda at ReportGarden
Jay Gandhi
 
The great migration embracing serverless first
The great migration  embracing serverless first The great migration  embracing serverless first
The great migration embracing serverless first
AngelaTimofte1
 
Ad

More from Oleg Podsechin (14)

Why SaaS (in Helsinki)?
Why SaaS (in Helsinki)?Why SaaS (in Helsinki)?
Why SaaS (in Helsinki)?
Oleg Podsechin
 
Staying safe in the cloud
Staying safe in the cloudStaying safe in the cloud
Staying safe in the cloud
Oleg Podsechin
 
Tips from angular js users anonymous
Tips from angular js users anonymousTips from angular js users anonymous
Tips from angular js users anonymous
Oleg Podsechin
 
AngularJS - the folly of choice
AngularJS - the folly of choiceAngularJS - the folly of choice
AngularJS - the folly of choice
Oleg Podsechin
 
RingoJS
RingoJSRingoJS
RingoJS
Oleg Podsechin
 
JS everywhere 2011
JS everywhere 2011JS everywhere 2011
JS everywhere 2011
Oleg Podsechin
 
What every developer can learn from startups
What every developer can learn from startupsWhat every developer can learn from startups
What every developer can learn from startups
Oleg Podsechin
 
Server side JavaScript: going all the way
Server side JavaScript: going all the wayServer side JavaScript: going all the way
Server side JavaScript: going all the way
Oleg Podsechin
 
Current State of Server Side JavaScript
Current State of Server Side JavaScriptCurrent State of Server Side JavaScript
Current State of Server Side JavaScript
Oleg Podsechin
 
On Platforms
On PlatformsOn Platforms
On Platforms
Oleg Podsechin
 
Common Node
Common NodeCommon Node
Common Node
Oleg Podsechin
 
The future of server side JavaScript
The future of server side JavaScriptThe future of server side JavaScript
The future of server side JavaScript
Oleg Podsechin
 
RingoJS
RingoJSRingoJS
RingoJS
Oleg Podsechin
 
Grid and Cloud Computing Intro
Grid and Cloud Computing IntroGrid and Cloud Computing Intro
Grid and Cloud Computing Intro
Oleg Podsechin
 
Why SaaS (in Helsinki)?
Why SaaS (in Helsinki)?Why SaaS (in Helsinki)?
Why SaaS (in Helsinki)?
Oleg Podsechin
 
Staying safe in the cloud
Staying safe in the cloudStaying safe in the cloud
Staying safe in the cloud
Oleg Podsechin
 
Tips from angular js users anonymous
Tips from angular js users anonymousTips from angular js users anonymous
Tips from angular js users anonymous
Oleg Podsechin
 
AngularJS - the folly of choice
AngularJS - the folly of choiceAngularJS - the folly of choice
AngularJS - the folly of choice
Oleg Podsechin
 
What every developer can learn from startups
What every developer can learn from startupsWhat every developer can learn from startups
What every developer can learn from startups
Oleg Podsechin
 
Server side JavaScript: going all the way
Server side JavaScript: going all the wayServer side JavaScript: going all the way
Server side JavaScript: going all the way
Oleg Podsechin
 
Current State of Server Side JavaScript
Current State of Server Side JavaScriptCurrent State of Server Side JavaScript
Current State of Server Side JavaScript
Oleg Podsechin
 
The future of server side JavaScript
The future of server side JavaScriptThe future of server side JavaScript
The future of server side JavaScript
Oleg Podsechin
 
Grid and Cloud Computing Intro
Grid and Cloud Computing IntroGrid and Cloud Computing Intro
Grid and Cloud Computing Intro
Oleg Podsechin
 
Ad

Lean and mean MongoDB

  • 1. Lean and mean MongoDB or why MongoDB is good for start ups
  • 4. /whois olegp ● doing startups since 2000 – RIOT-E ● tech DD for investors since 2008 ● Startup Sauna coach ● new venture: StartHQ
  • 7. Web apps 101 ● REST API centric design ● One primary data store – Except blobs ● No premature optimization – e.g. caching
  • 10. Background Reading ● “How FriendFeed uses MySQL to store schemaless data” – “mariadb dynamic columns” ● “PostgreSQL as a schemaless database”
  • 13. The Pros ● Simpler schema design – Fewer many to one relationships – Design is part of development, not separate ● No DB setup step ● No DB migrations * ● No ORMs ● JSON as query language
  • 15. Hosting ● Amazon RDS: from $18 ● Heroku Postgres: from $10 ● MongoHQ & MongoLab: from FREE
  • 16. Database as a Service
  • 18. Database as a Service ● Web admin FTW – Saves you building your own ● No SSL – But on AWS you can't sniff traffic ● Expensive backups – But you can easily roll your own
  • 19. Some Code return db.getCollection("apps").find({ nameLowerCase:{ $regex:utils.prettify(request.queryParams.term) }, verified:true }, { name:true, url:true }).sort({'extractors.social.score':-1}) .limit(10).toArray().map(function(app) { return { label:app.name, value:app.url }; });
  • 20. Tools ● 10gen MMS ● Metrica ● Nodetime
  • 23. Getting Started ● try.mongodb.org ● “dailyjs lmaw” ● olegp/notes & olegp/tokenize
  • 24. Summary ● Optimize for ease of development ● Do design your schema ● Do not prematurely optimize ● Have fun!
  翻译: