SlideShare ist ein Scribd-Unternehmen logo
1 von 29
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Was ist angesagt?

AmebaのMongoDB活用事例
AmebaのMongoDB活用事例AmebaのMongoDB活用事例
AmebaのMongoDB活用事例Akihiro Kuwano
 
後悔しないもんごもんごの使い方 〜アプリ編〜
後悔しないもんごもんごの使い方 〜アプリ編〜後悔しないもんごもんごの使い方 〜アプリ編〜
後悔しないもんごもんごの使い方 〜アプリ編〜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.
 
Mongo dbを半年ちょっと運用してみた
Mongo dbを半年ちょっと運用してみたMongo dbを半年ちょっと運用してみた
Mongo dbを半年ちょっと運用してみたhtty_hasumi
 
MongoDB on EC2 #mongodbcasual
MongoDB on EC2 #mongodbcasualMongoDB on EC2 #mongodbcasual
MongoDB on EC2 #mongodbcasualYasuhiro 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 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-datatypeToshi Harada
 
コンテキストデータの永続化のための戦略
コンテキストデータの永続化のための戦略コンテキストデータの永続化のための戦略
コンテキストデータの永続化のための戦略fisuda
 

Was ist angesagt? (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
 
コンテキストデータの永続化のための戦略
コンテキストデータの永続化のための戦略コンテキストデータの永続化のための戦略
コンテキストデータの永続化のための戦略
 

Ähnlich wie MongoDB勉強会資料

大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (前編)
大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (前編)大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (前編)
大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (前編)Akihiro Kuwano
 
既存システムへの新技術活用法 ~fluntd/MongoDB~
既存システムへの新技術活用法 ~fluntd/MongoDB~既存システムへの新技術活用法 ~fluntd/MongoDB~
既存システムへの新技術活用法 ~fluntd/MongoDB~じゅん なかざ
 
PHP開発者のためのNoSQL入門
PHP開発者のためのNoSQL入門PHP開発者のためのNoSQL入門
PHP開発者のためのNoSQL入門じゅん なかざ
 
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 azureGoAzure
 
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
 

Ähnlich wie 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勉強会資料