NoSQL を Ruby で実践するための n 個の方法

  • Published on
    14-May-2015

  • View
    6.166

  • Download
    7

Embed Size (px)

Transcript

  • 1.NoSQL Rubyn

2. NoSQL Ruby1 n=1 3. (@Sixeight) 4. NoSQL MongoDB MongoMapper 5. NoSQL MongoDB MongoMapper 6. NoSQL 7. SQL 8. SQL 9. Not only SQL 10. CREATE TABLE cats (id int NOT NULL,name text,PRIMARY KEY (id) ); INSERT INTO cats VALUES (1, tama); 11. CREATE TABLE cats (id int NOT NULL,name text,PRIMARY KEY (id) ); INSERT INTO cats VALUES (1, tama); 12. $ mongo > db.cats.insert({name: tama}) 13. $ mongo > db.cats.insert({name: tama}) > db.cats.insert({name: goro,dapple_color: gray }) > db.cats.nd() { "_id" : ObjectId("4c49118783d1600c126d2147"), "name" : "tama" } { "_id" : ObjectId("4c49119983d1600c126d2148"), "name" : "goro", "dapple_color" : "gray" } 14. Google BigTable amazon Dynamo HBase Apache Casandra CounchDB MongoDB and more 15. Google BigTable amazon Dynamo HBase Apache Casandra CounchDB MongoDB and more 16. Google BigTable amazon Dynamo HBase Apache Casandra CounchDB MongoDB and more 17. NoSQL MongoDB MongoMapper 18. MongoDB by 10gen 19. MongoDB C++ (wikipedia) 20. MongoDB C++ (wikipedia) 21. (the simplicity and power of JSON-like data schemas) Index in-placelarge objects () shardingMapReduce 22. 23. { "_id" : ###, "name" : "tama" } 24. { "_id" : ###, "name" : "tama" } { "_id" : ###, "name" : "goro", "dapple_color" : "gray" } 25. { "_id" : ###, "name" : "tama" } { "_id" : ###, "name" : "goro", "dapple_color" : "gray" } 26. over 200 projects 27. NoSQL MongoDB MongoMapper 28. MongoMapper http://github.com/jnunemaker/mongomapper 29. ActiveRecord API + 30. gem install mongo_mapper 31. class Cats include MongoMapper::Documentkey :name, String end 32. irb 33. class Cats include MongoMapper::Documentkey :name, String end 34. class Cats include MongoMapper::Documentkey :name, String end 35. class Cats include MongoMapper::Documentkey :name, String end 36. irb:001:0> Cats.create :name => 'tama' irb:002:0> Cats.rst => # irb:003:0> Cats.create :name => 'goro', :dapple_color => gray irb:004:0> Cats.count => 2 irb:005:0> Cats.rst(:name => goro) => # 37. Array, Binary, Boolean, Date, Float, HashInteger, Nil, ObjectId, Set, String, Time Custom Type, and TypeLess 38. Array, Binary, Boolean, Date, Float, Hash TypeLessInteger, Nil, ObjectId, Set, String, Time Custom Type, and TypeLess 39. class Storage include MongoMapper::Documentkey :value end 40. class Storage include MongoMapper::Documentkey :value end 41. irb:001:0> Storage.create :values => 25 irb:002:0> Storage.create :value => 'String' irb:003:0> Cats.all => [#, #] 42. Array, Binary, Boolean, Date, Float, HashInteger, Nil, ObjectId, Set, String, Time Custom Type, and TypeLess 43. class Family include MongoMapper::Document key :name, String many :cats endclass Cats include MongoMapper::Document key :name, String key :family_id, ObjectId belongs_to :family end 44. class Person include MongoMapper::Document key :name, String one :address endclass Address include MongoMapper::EmbeddedDocument key :zipcode, String key :street, String end 45. validates_presence_of :title validates_presence_of validates_length_of validates_format_of validated_numericality_of validates_acceptance_of validated_congmati 46. class Cats include MongoMapper::Document key :name, Stringvalidates_presence_of :name end 47. class Cats include MongoMapper::Document key :name, String, :required => true end 48. class Cats include MongoMapper::Document key :name, String, :required => true end 49. before / after 50. validate, create, save 51. class Cats include MongoMapper::Document key :name, Stringbefore_validation :add_nyanprivate def add_nyan self.name += nyan end end 52. irb:001:0> Cats.create :name => 'tama' irb:002:0> Cats.rst => # 53. module Charisma def fly puts Im flying end endMongoMapper::Document. append_inclusions(Charisma)Cats.first(:name => tama).fly 54. module Charisma def fly puts Im flying end endMongoMapper::Document. append_inclusions(Charisma)Cats.first(:name => tama).fly 55. NoSQL MongoDB MongoMapper 56. MongoDB 57. DB KVS RDBMS 58. MongoMapper 59. ActiveRecordMongoDB 60. URL http://www.mongodb.org/ http://www.mongodb.org/display/DOCSJP/Home http://wiki.github.com/jnunemaker/mongomapper/ http://gihyo.jp/dev/serial/01/ruby/0033 61. by http://www.wanpug.com/

Recommended

View more >