Rails with MongoDB - RORLab 47th

1,278 views
1,113 views

Published on

Rails with MongoDB - RORLab 47th
Oct 8, 2013

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,278
On SlideShare
0
From Embeds
0
Number of Embeds
10
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Rails with MongoDB - RORLab 47th

  1. 1. Rails with MongoDB-2 Eugene Park starville@me.com
  2. 2. Setup Ruby On Rails on Ubuntu 13.04 • Installing Ruby with rvm • Installing Rails $ sudo apt-get update $ Sudo apt-get install curl $ curl -L https://get.rvm.io | bash -s stable $ source ~/.rvm/scripts/rvm $ rvm requriements $ Sudo apt-get ... $ rvm install 2.0.0 $ rvm use 2.0.0 --default $ ruby -v $ gem install rails
  3. 3. Installing MongoDB on Ubuntu 13.04 • Configure Package Management System (APT) • Install Packages • configration $ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10 $ echo 'deb http://downloads- distro.mongodb.org/repo/ubuntu-upstart dist 10gen' | sudo tee /etc/apt/sources.list.d/mongodb.list $ sudo apt-get update $ sudo apt-get install mongodb-10gen $ whereis mongodb.conf
  4. 4. Installing mongoid • installing Mongoid is with bundler • Configuration $ vi Gemfile gem 'mongoid', github: 'mongoid/mongoid‘ gem 'bson', github: 'mongodb/bson-ruby' gem 'execjs‘ gem 'therubyracer‘ $ bundle update $ Rails g mongoid:config $ vi myapp/config/mongoid.yml
  5. 5. MongoDB SQL Create Insert (Save) Insert Read Find Select Update Update (Upsert) Update Delete Remove Delete CRUD & the Mongoshell
  6. 6. book = { _id : 10203040, title : “Rails wth MongoDB Guide”, auther : “Eugene Park”, available : 987, checkout : [ {by : “Eugene”, date : ISOdate(“2013-10-01”)}] } db.books.findAndModify({ query: { _id : 10203040, available: { $gt: 0 } }, update: { $inc : { available : -1}, $push : { checkout : { by: “Crayon”, data: new Date()}} } }) Atomic operations
  7. 7. Schema Design • The data your application needs. • How your application will read the data. • How your application will write the data. Traditional MongoDB Your application doesn’t matter. Only about the data. Only relevant during design. It’s always about your application. Not only about the data, but also how it’s used. Relevant during the lifetime of your application.
  8. 8. Blog data model posts id author title Body comments id post_id tag_id author body posts_tags id post_id tag_id tags id text posts id title body tags[] comment[ {author: …,body: …}, {…} ] RDBMS MongoDB
  9. 9. Create blog apps $ rails new blog –-skip-active-record $ cd blog $ vi Gemfile #add and save gem 'mongoid', github: 'mongoid/mongoid‘ gem 'bson', github: 'mongodb/bson-ruby' gem 'execjs‘ gem 'therubyracer‘ $ bundle $ rake g mongoid:config $ rails g scaffold post title:string body:text tags:array ... ① string to array $ Rails g model comment author:string body:text ... ② def relationship, routes $ rails g controller comments ... ③ def create ... ④ create list, form for comment

×