SlideShare a Scribd company logo
Tachy with MongoDB

            株式会社サイバーエージェント
            アメーバ事業本部 宍戸展志
MongoDB勉強会
第二回 MongoDB勉強会



• 自己紹介
       • 宍戸展志(ししど ひろむね) 25歳
       • Twitter @joe_hrmn


• 所属
       • 株式会社 サイバーエージェント
       • Tachy(プレリリース中)担当 アプリケーションエンジニア


• その他
       • サッカー大好き
       • Piggに似てる




                       2
MongoDB勉強会
第二回 MongoDB勉強会




アジェンダ

• Tachyについて
• システム構成
• MongoDBの使いどころ
• 苦労した話
• これから



                 3
MongoDB勉強会
第二回 MongoDB勉強会


Tachy
• 実名制SNS
       • タイムライン形式で情報を表示
       • ひとこと、写真投稿、予定機能 etc
       • 『閲覧権限』の設定あり


• 使っている技術要素
       • MongoDB
                 » Morphia
                 http://code.google.com/p/morphia/
       • MySQL
       • ActiveMQ ( 5.3.2 )



                                     4
MongoDB勉強会
第二回 MongoDB勉強会




                 5
MongoDB勉強会
第二回 MongoDB勉強会




                 \(^o^)/
                       /
                    6
MongoDB勉強会
第二回 MongoDB勉強会



       を使った理由
MongoDBを使った理由
• 使ってみたかった
       • 社内ではpicoで利用実績あり
•   データ分散の処理は大変
•   データアクセスが高速(と聞いて)
•   自動でfailover
•   ドキュメント形式の柔軟性



                    7
MongoDB勉強会
第二回 MongoDB勉強会



システム構成
                        【Web App】
                                】




           【ActiveMQ】
                    】




        【mongoDB】
                】                         】
                                    【MySQL】




                            8
MongoDB勉強会
第二回 MongoDB勉強会



MongoDB
• Ver 1.6.5
• ReplicaSet + Sharding                 webApp
                                         MQ
                                          API
• JavaDriver
                          【client】
       • 2.4
• morphia                                       mongoc
                          mongos
       • 0.99

                 mongod       mongod   mongod




                            9
MongoDB勉強会
第二回 MongoDB勉強会



Collections
• Entry
• Timeline
• Room
                 Etc…




                        10
MongoDB勉強会
第二回 MongoDB勉強会



Entry




                 11
MongoDB勉強会
第二回 MongoDB勉強会



operation@Entry
• 発言の取得
   – db.Entry.find({entryId : 123, deleteFlag:0});

• コメントの取得
   – db.Entry.find({replyEntryId:1234, deleteFlag:0}).sort({registDate:-1});



• データのinsert(1件ずつ)
• 削除(→deleteFlagのupdate)



                                     12
MongoDB勉強会
第二回 MongoDB勉強会



Timeline




                 13
MongoDB勉強会
第二回 MongoDB勉強会



operation@Timeline
• ユーザーのタイムラインの取得
   – db.Timeline.find({userId:1, registDate > xxx});
   →この部分には複合indexを定義
      db.Timeline.ensureIndex({userId:1, registDate:-1});



• Insert(1件ずつ)
   – 1Entryに対して、100人に配る場合は100回ループを回す形
           – 後々ボトルネックになるので変更




                                    14
MongoDB勉強会
第二回 MongoDB勉強会



Room




                        Embedオブジェクトとして
                        Listを内部に保持



                 Ex) db.Room.findOne({members:26});



                                15
MongoDB勉強会
第二回 MongoDB勉強会



 > db.Room.findOne({roomId:603});
 {
     "_id" : ObjectId("4d9e772074978c29974fba92"),
     "roomId" : NumberLong(603),
     "userId" : NumberLong(238),
     "text" : "限定ヒトコト(グループ5)",
     "registDate" : "Fri Apr 08 2011 11:46:56 GMT+0900 (JST)",
     "editDate" : "Fri Apr 08 2011 11:46:56 GMT+0900 (JST)",
     "emaFlag" : 0,
     "deleteFlag" : 0,
     "members" : [
         NumberLong(239),
         NumberLong(274),
         NumberLong(238)
     ]
 }




                                                16
MongoDB勉強会
第二回 MongoDB勉強会



operation@Room
• Room情報の取得
   – db.Room.find({roomId:123});

• Roomに含まれているか
   – db.Room.find({members:123});


• Insert
   – 1件ずつ

• Update
   – メンバーの追加



                                   17
MongoDB勉強会
第二回 MongoDB勉強会



テストしてみました
• 環境
   – App (Apache / Tomcat)
      • Intel(R) Xeon(R) CPU X3430 @ 2.40GHz (4core)
      • 12G RAM
   – MongoDB
      • Xfs
      • Intel(R) Xeon(R) CPU X3430 @ 2.40GHz (4core)
      • 16G RAM
   – ActiveMQ
      • Intel(R) Xeon(R) CPU L5410 @ 2.33GHz (4core)
      • 12G RAM


                                 18
MongoDB勉強会
第二回 MongoDB勉強会



タイムラインの作成が重い・・・
• 変遷
   – timelineDao.save(timeline, WriteConcern.SAFE);
           – 1件ずつinsert
               » Reciever側の負荷が高騰




                                  19
MongoDB勉強会
第二回 MongoDB勉強会



タイムラインの作成が重い・・・
• 変遷
   – timelineDao.save(timeline, WriteConcern.SAFE);
           – 1件ずつinsert
               » Reciever側の負荷が高騰
   – timelineDao.getCollection().insert(timelineList, WriteConcern.SAFE);
           – Bulk insertに変更
               » Thread dumpなどで見ているとまだ詰まってる




                                    20
MongoDB勉強会
第二回 MongoDB勉強会



タイムラインの作成が重い・・・
• 変遷
   – timelineDao.save(timeline, WriteConcern.SAFE);
           – 1件ずつinsert
               » Reciever側の負荷が高騰
   – timelineDao.getCollection().insert(timelineList, WriteConcern.SAFE);
           – Bulk insertに変更
               » Thread dumpなどで見ているとまだ詰まってる
   – timelineDao.getCollection().insert(timelineList);
           – 書き込みチェックなしに




                                    21
MongoDB勉強会
第二回 MongoDB勉強会



タイムラインの取得も重い・・・
• TimelineにはentryIdしかentry情報が無い
       • 結局EntryCollectionに取得件数分find()する必要がある
                 » CSが頻発


• 変遷
   – db.Entry.find({entryId:12345});
                 » 必要な数だけ




                                   22
MongoDB勉強会
第二回 MongoDB勉強会



タイムラインの取得も重い・・・
• TimelineにはentryIdしかentry情報が無い
       • 結局EntryCollectionに取得件数分find()する必要がある
                 » CSが頻発


• 変遷
   – db.Entry.find({entryId:12345});
                » 必要な数だけ
   – entryIdListを事前に作成して
     db.Entry.find({entryId:{$in : entryIdList}}).sort({registDate:-1});




                                      23
MongoDB勉強会
第二回 MongoDB勉強会



【Error】 Switching Master
      】
• 接続先がmongosプロセス1つの時、mongoインスタンス
  作成時に渡すIPがListだと発生

 ■before
 List<ServerAddress> replSets = new ArrayList<ServerAddress>();

 for(String server : serverList)
    replSets.add(new ServerAddress(server, port));

 mongo = new Mongo(replSets, option.createMongoOptions());



 ■after
 ServerAddress addr = new ServerAddress(mongos, port);
 mongo = new Mongo(addr, option.createMongoOptions());




                                                 24
MongoDB勉強会
第二回 MongoDB勉強会



       ・・・じゃない
slaveOk・・・じゃない
• mongosを通すとslaveに参照クエリが投げられない
• ReplicaSet単体で動かしているときは問題なし

• 書き込みチェック(WriteConcern.SAFE など)は内部
  的に書き込み後、findOneを発行
       • Collectionのlock回数を少しでも減らしたい
       • 参照は別サーバーに向いて欲しい

                 » 調査中…(´・ω・`)




                                 25
MongoDB勉強会
第二回 MongoDB勉強会



その他いろいろ
• Out of semaphores to get db connection
        • MongoOptionsの下記の値を調整

connectionPerHost * threadsAllowedToBlockForConnectionMultiplier >= maxthreads



• Too Many Open Files

• Test中にnic死亡
• Xfsの設定はmongo推奨に合わせるのがよさそう

                                      26
MongoDB勉強会
第二回 MongoDB勉強会



良かったこと
• Index重要
• mongostatが役に立った
       • Sar, vmstat, iostat
• RDBのノウハウの流用が可能
       • explain




                               27
MongoDB勉強会
第二回 MongoDB勉強会




今後
• より複雑なクエリでの性能検証
  > db.Entry.find({
  ... userId:26,
  ... replyUserId:{$nin:[0,26]},
  ... entryType:{$in:["ENTRY","PHOTO"]},
  ... deleteFlag:0,
  ... $where:"this.replyEntryId <= this.parentEntryId"}).limit(50).sort({registDate:-1}).explain();
  {
        "cursor" : "BtreeCursor userId",
        "nscanned" : 176,
        "nscannedObjects" : 176,
        "n" : 18,
        "scanAndOrder" : true,
        "millis" : 2,
        "indexBounds" : {
             "userId" : [
                   [
                      26,
                      26
                   ]
             ]
        }
  }


                                                                28
MongoDB勉強会
第二回 MongoDB勉強会




今後
• バックアップ、リストア
• Collection設計
• もっと多くのデータで




                 29

More Related Content

What's hot

AmebaのMongoDB活用事例
AmebaのMongoDB活用事例AmebaのMongoDB活用事例
AmebaのMongoDB活用事例Akihiro Kuwano
 
Cassandra v0.6-siryou
Cassandra v0.6-siryouCassandra v0.6-siryou
後悔しないもんごもんごの使い方 〜アプリ編〜
後悔しないもんごもんごの使い方 〜アプリ編〜後悔しないもんごもんごの使い方 〜アプリ編〜
後悔しないもんごもんごの使い方 〜アプリ編〜
Masakazu Matsushita
 
月間10億pvを支えるmongo db
月間10億pvを支えるmongo db月間10億pvを支えるmongo db
月間10億pvを支えるmongo dbYuji Isobe
 
Fluentd+elasticsearch+kibana(fluentd編)
Fluentd+elasticsearch+kibana(fluentd編)Fluentd+elasticsearch+kibana(fluentd編)
Fluentd+elasticsearch+kibana(fluentd編)
Daisuke Kikuchi
 
MongoDB very basic (Japanese) / MongoDB基礎の基礎
MongoDB very basic (Japanese) / MongoDB基礎の基礎MongoDB very basic (Japanese) / MongoDB基礎の基礎
MongoDB very basic (Japanese) / MongoDB基礎の基礎
Naruhiko Ogasawara
 
カジュアルにソースコードリーディング
カジュアルにソースコードリーディングカジュアルにソースコードリーディング
カジュアルにソースコードリーディング
Akihiro Okuno
 
MongoDB〜その性質と利用場面〜
MongoDB〜その性質と利用場面〜MongoDB〜その性質と利用場面〜
MongoDB〜その性質と利用場面〜
Naruhiko Ogasawara
 
Mongo dbを知ろう
Mongo dbを知ろうMongo dbを知ろう
Mongo dbを知ろうCROOZ, inc.
 
MongoDB
MongoDBMongoDB
Mongo dbを半年ちょっと運用してみた
Mongo dbを半年ちょっと運用してみたMongo dbを半年ちょっと運用してみた
Mongo dbを半年ちょっと運用してみた
htty_hasumi
 
MongoDB on EC2 #mongodbcasual
MongoDB on EC2 #mongodbcasualMongoDB on EC2 #mongodbcasual
MongoDB on EC2 #mongodbcasual
Yasuhiro Matsuo
 
日本語:Mongo dbに於けるシャーディングについて
日本語:Mongo dbに於けるシャーディングについて日本語:Mongo dbに於けるシャーディングについて
日本語:Mongo dbに於けるシャーディングについて
ippei_suzuki
 
ソーシャルゲームにおけるAWS/MongoDB利用事例
ソーシャルゲームにおけるAWS/MongoDB利用事例ソーシャルゲームにおけるAWS/MongoDB利用事例
ソーシャルゲームにおけるAWS/MongoDB利用事例
Masakazu Matsushita
 
Kibanaでsysstatを可視化する
Kibanaでsysstatを可視化するKibanaでsysstatを可視化する
Kibanaでsysstatを可視化する
Kensuke Maeda
 
Mongodb
MongodbMongodb
Mongodb
Satoru Mikami
 
MongoDB Configパラメータ解説
MongoDB Configパラメータ解説MongoDB Configパラメータ解説
MongoDB Configパラメータ解説
Shoken Fujisaki
 
MyNA JPUG study 20160220-postgresql-json-datatype
MyNA JPUG study 20160220-postgresql-json-datatypeMyNA JPUG study 20160220-postgresql-json-datatype
MyNA JPUG study 20160220-postgresql-json-datatype
Toshi Harada
 
コンテキストデータの永続化のための戦略
コンテキストデータの永続化のための戦略コンテキストデータの永続化のための戦略
コンテキストデータの永続化のための戦略
fisuda
 

What's hot (20)

AmebaのMongoDB活用事例
AmebaのMongoDB活用事例AmebaのMongoDB活用事例
AmebaのMongoDB活用事例
 
Cassandra v0.6-siryou
Cassandra v0.6-siryouCassandra v0.6-siryou
Cassandra v0.6-siryou
 
後悔しないもんごもんごの使い方 〜アプリ編〜
後悔しないもんごもんごの使い方 〜アプリ編〜後悔しないもんごもんごの使い方 〜アプリ編〜
後悔しないもんごもんごの使い方 〜アプリ編〜
 
月間10億pvを支えるmongo db
月間10億pvを支えるmongo db月間10億pvを支えるmongo db
月間10億pvを支えるmongo db
 
Fluentd+elasticsearch+kibana(fluentd編)
Fluentd+elasticsearch+kibana(fluentd編)Fluentd+elasticsearch+kibana(fluentd編)
Fluentd+elasticsearch+kibana(fluentd編)
 
MongoDB very basic (Japanese) / MongoDB基礎の基礎
MongoDB very basic (Japanese) / MongoDB基礎の基礎MongoDB very basic (Japanese) / MongoDB基礎の基礎
MongoDB very basic (Japanese) / MongoDB基礎の基礎
 
カジュアルにソースコードリーディング
カジュアルにソースコードリーディングカジュアルにソースコードリーディング
カジュアルにソースコードリーディング
 
MongoDB〜その性質と利用場面〜
MongoDB〜その性質と利用場面〜MongoDB〜その性質と利用場面〜
MongoDB〜その性質と利用場面〜
 
Mongo dbを知ろう
Mongo dbを知ろうMongo dbを知ろう
Mongo dbを知ろう
 
MongoDB
MongoDBMongoDB
MongoDB
 
Mongo dbを半年ちょっと運用してみた
Mongo dbを半年ちょっと運用してみたMongo dbを半年ちょっと運用してみた
Mongo dbを半年ちょっと運用してみた
 
MongoDB on EC2 #mongodbcasual
MongoDB on EC2 #mongodbcasualMongoDB on EC2 #mongodbcasual
MongoDB on EC2 #mongodbcasual
 
日本語:Mongo dbに於けるシャーディングについて
日本語:Mongo dbに於けるシャーディングについて日本語:Mongo dbに於けるシャーディングについて
日本語:Mongo dbに於けるシャーディングについて
 
Mongodb 紹介
Mongodb 紹介Mongodb 紹介
Mongodb 紹介
 
ソーシャルゲームにおけるAWS/MongoDB利用事例
ソーシャルゲームにおけるAWS/MongoDB利用事例ソーシャルゲームにおけるAWS/MongoDB利用事例
ソーシャルゲームにおけるAWS/MongoDB利用事例
 
Kibanaでsysstatを可視化する
Kibanaでsysstatを可視化するKibanaでsysstatを可視化する
Kibanaでsysstatを可視化する
 
Mongodb
MongodbMongodb
Mongodb
 
MongoDB Configパラメータ解説
MongoDB Configパラメータ解説MongoDB Configパラメータ解説
MongoDB Configパラメータ解説
 
MyNA JPUG study 20160220-postgresql-json-datatype
MyNA JPUG study 20160220-postgresql-json-datatypeMyNA JPUG study 20160220-postgresql-json-datatype
MyNA JPUG study 20160220-postgresql-json-datatype
 
コンテキストデータの永続化のための戦略
コンテキストデータの永続化のための戦略コンテキストデータの永続化のための戦略
コンテキストデータの永続化のための戦略
 

Similar to MongoDB勉強会資料

大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (前編)
大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (前編)大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (前編)
大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (前編)Akihiro Kuwano
 
Node.jsでブラウザメッセンジャー
Node.jsでブラウザメッセンジャーNode.jsでブラウザメッセンジャー
Node.jsでブラウザメッセンジャー
Yahoo!デベロッパーネットワーク
 
既存システムへの新技術活用法 ~fluntd/MongoDB~
既存システムへの新技術活用法 ~fluntd/MongoDB~既存システムへの新技術活用法 ~fluntd/MongoDB~
既存システムへの新技術活用法 ~fluntd/MongoDB~
じゅん なかざ
 
PHP開発者のためのNoSQL入門
PHP開発者のためのNoSQL入門PHP開発者のためのNoSQL入門
PHP開発者のためのNoSQL入門
じゅん なかざ
 
Mongo db world 2018
Mongo db world 2018Mongo db world 2018
Mongo db world 2018
Creationline,inc.
 
tcpdump & xtrabackup @ MySQL Casual Talks #1
tcpdump & xtrabackup @ MySQL Casual Talks #1tcpdump & xtrabackup @ MySQL Casual Talks #1
tcpdump & xtrabackup @ MySQL Casual Talks #1Ryosuke IWANAGA
 
DB tech showcase: 噂のMongoDBその用途は?
DB tech showcase: 噂のMongoDBその用途は?DB tech showcase: 噂のMongoDBその用途は?
DB tech showcase: 噂のMongoDBその用途は?Hiroaki Kubota
 
MongoDBではじめるカジュアルなタイムラインシステム
MongoDBではじめるカジュアルなタイムラインシステムMongoDBではじめるカジュアルなタイムラインシステム
MongoDBではじめるカジュアルなタイムラインシステムHitoshi Asai
 
Javaはどのように動くのか~スライドでわかるJVMの仕組み
Javaはどのように動くのか~スライドでわかるJVMの仕組みJavaはどのように動くのか~スライドでわかるJVMの仕組み
Javaはどのように動くのか~スライドでわかるJVMの仕組み
Chihiro Ito
 
オープンソースのIoT向けスケールアウト型データベース GridDB 〜性能ベンチマーク結果とOSSを利用したビッグデータ分析環境〜
オープンソースのIoT向けスケールアウト型データベース GridDB 〜性能ベンチマーク結果とOSSを利用したビッグデータ分析環境〜オープンソースのIoT向けスケールアウト型データベース GridDB 〜性能ベンチマーク結果とOSSを利用したビッグデータ分析環境〜
オープンソースのIoT向けスケールアウト型データベース GridDB 〜性能ベンチマーク結果とOSSを利用したビッグデータ分析環境〜
griddb
 
【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏
【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏
【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏Developers Summit
 
Osc2012.dbに行ってきました
Osc2012.dbに行ってきましたOsc2012.dbに行ってきました
Osc2012.dbに行ってきましたMasaru Kobashigawa
 
Firefoxの開発プロセス
Firefoxの開発プロセスFirefoxの開発プロセス
Firefoxの開発プロセスMakoto Kato
 
Web Operations and Perl kansai.pm#14
Web Operations and Perl kansai.pm#14Web Operations and Perl kansai.pm#14
Web Operations and Perl kansai.pm#14Masahiro Nagano
 
初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!
Tetsutaro Watanabe
 
A 2-1 gitwebmatrix 2 から使う node.js on windows azure
A 2-1 gitwebmatrix 2 から使う node.js on windows azureA 2-1 gitwebmatrix 2 から使う node.js on windows azure
A 2-1 gitwebmatrix 2 から使う node.js on windows azure
GoAzure
 
TypeScriptへの入口
TypeScriptへの入口TypeScriptへの入口
TypeScriptへの入口
Sunao Tomita
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDBmoai kids
 
Webブラウザで使える文献Web API取得結果のスプレッドシート化 ~ Google Colab始めました ~
Webブラウザで使える文献Web API取得結果のスプレッドシート化 ~ Google Colab始めました ~Webブラウザで使える文献Web API取得結果のスプレッドシート化 ~ Google Colab始めました ~
Webブラウザで使える文献Web API取得結果のスプレッドシート化 ~ Google Colab始めました ~
genroku
 

Similar to MongoDB勉強会資料 (20)

大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (前編)
大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (前編)大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (前編)
大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (前編)
 
Node.jsでブラウザメッセンジャー
Node.jsでブラウザメッセンジャーNode.jsでブラウザメッセンジャー
Node.jsでブラウザメッセンジャー
 
既存システムへの新技術活用法 ~fluntd/MongoDB~
既存システムへの新技術活用法 ~fluntd/MongoDB~既存システムへの新技術活用法 ~fluntd/MongoDB~
既存システムへの新技術活用法 ~fluntd/MongoDB~
 
PHP開発者のためのNoSQL入門
PHP開発者のためのNoSQL入門PHP開発者のためのNoSQL入門
PHP開発者のためのNoSQL入門
 
Mongo db world 2018
Mongo db world 2018Mongo db world 2018
Mongo db world 2018
 
tcpdump & xtrabackup @ MySQL Casual Talks #1
tcpdump & xtrabackup @ MySQL Casual Talks #1tcpdump & xtrabackup @ MySQL Casual Talks #1
tcpdump & xtrabackup @ MySQL Casual Talks #1
 
DB tech showcase: 噂のMongoDBその用途は?
DB tech showcase: 噂のMongoDBその用途は?DB tech showcase: 噂のMongoDBその用途は?
DB tech showcase: 噂のMongoDBその用途は?
 
MongoDBではじめるカジュアルなタイムラインシステム
MongoDBではじめるカジュアルなタイムラインシステムMongoDBではじめるカジュアルなタイムラインシステム
MongoDBではじめるカジュアルなタイムラインシステム
 
Javaはどのように動くのか~スライドでわかるJVMの仕組み
Javaはどのように動くのか~スライドでわかるJVMの仕組みJavaはどのように動くのか~スライドでわかるJVMの仕組み
Javaはどのように動くのか~スライドでわかるJVMの仕組み
 
オープンソースのIoT向けスケールアウト型データベース GridDB 〜性能ベンチマーク結果とOSSを利用したビッグデータ分析環境〜
オープンソースのIoT向けスケールアウト型データベース GridDB 〜性能ベンチマーク結果とOSSを利用したビッグデータ分析環境〜オープンソースのIoT向けスケールアウト型データベース GridDB 〜性能ベンチマーク結果とOSSを利用したビッグデータ分析環境〜
オープンソースのIoT向けスケールアウト型データベース GridDB 〜性能ベンチマーク結果とOSSを利用したビッグデータ分析環境〜
 
【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏
【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏
【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏
 
Osc2012.dbに行ってきました
Osc2012.dbに行ってきましたOsc2012.dbに行ってきました
Osc2012.dbに行ってきました
 
Firefoxの開発プロセス
Firefoxの開発プロセスFirefoxの開発プロセス
Firefoxの開発プロセス
 
Web Operations and Perl kansai.pm#14
Web Operations and Perl kansai.pm#14Web Operations and Perl kansai.pm#14
Web Operations and Perl kansai.pm#14
 
初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!
 
A 2-1 gitwebmatrix 2 から使う node.js on windows azure
A 2-1 gitwebmatrix 2 から使う node.js on windows azureA 2-1 gitwebmatrix 2 から使う node.js on windows azure
A 2-1 gitwebmatrix 2 から使う node.js on windows azure
 
TypeScriptへの入口
TypeScriptへの入口TypeScriptへの入口
TypeScriptへの入口
 
Sc2009autumn s2robot
Sc2009autumn s2robotSc2009autumn s2robot
Sc2009autumn s2robot
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDB
 
Webブラウザで使える文献Web API取得結果のスプレッドシート化 ~ Google Colab始めました ~
Webブラウザで使える文献Web API取得結果のスプレッドシート化 ~ Google Colab始めました ~Webブラウザで使える文献Web API取得結果のスプレッドシート化 ~ Google Colab始めました ~
Webブラウザで使える文献Web API取得結果のスプレッドシート化 ~ Google Colab始めました ~
 

MongoDB勉強会資料