Submit Search
Mongo db勉強会
3 likes
2,556 views
O
otmb
社内向けにMongoDB勉強会をしました。 社内フレームワークDecoでの実装について。
Read more
1 of 42
Download now
Downloaded 29 times
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
More Related Content
PPTX
PHP+DB
Sawada Makoto
PDF
Phpcon kansai 2011 ichikaway
ichikaway
PDF
Pgunconf neo4j fdw
Toshi Harada
PDF
20150520 lt-neo4j勉強会-neofj fdw
Toshi Harada
PDF
カウチなやつら CouchDB in the room
Makoto Ohnami
PDF
Dexiejs
Ryota Suzuki
KEY
データベースのお話
Hidekazu Tanaka
PPTX
Indexed DBについて(書きかけ)
iPride Co., Ltd.
PHP+DB
Sawada Makoto
Phpcon kansai 2011 ichikaway
ichikaway
Pgunconf neo4j fdw
Toshi Harada
20150520 lt-neo4j勉強会-neofj fdw
Toshi Harada
カウチなやつら CouchDB in the room
Makoto Ohnami
Dexiejs
Ryota Suzuki
データベースのお話
Hidekazu Tanaka
Indexed DBについて(書きかけ)
iPride Co., Ltd.
What's hot
(20)
PDF
NoSQLデータベースと位置情報
Koji Ichiwaki
PDF
初めてのMongo db
Ryuji Tamagawa
PPTX
ゼロから始めるBlob
Kazunori Hamamoto
PDF
RとSQLiteで気軽にデータベース作成
弘毅 露崎
PDF
HTML5 Local Storageを利用したメモ帳アプリ
Yossy Taka
PPTX
Mongo dbを知ろう
CROOZ, inc.
ODP
Programming under capability mode
Yuichiro Naito
PDF
MongoDBざっくり解説
知教 本間
PDF
Db tech showcase2015 how to replicate between clusters
Hiroaki Kubota
PDF
RDB経験者に送るMongoDBの勘所(db tech showcase tokyo 2013)
Ryuji Tamagawa
PDF
ダイナミックDNSとは
Takeshi Kabu
PDF
ldapvi & python-ldap で stress-free life
Kouhei Maeda
PPTX
Mongo db勉強会の補足
CROOZ, inc.
PPTX
MongoDBが遅いときの切り分け方法
Tetsutaro Watanabe
PDF
Ajax非同期通信によるサーバー通信
Yossy Taka
PDF
R以外の研究ツール
弘毅 露崎
ODP
Mongo dbを半年ちょっと運用してみた
htty_hasumi
PDF
DB tech showcase: 噂のMongoDBその用途は?
Hiroaki Kubota
ODP
Next-L Enju 開発ワークショップ #8
Kosuke Tanabe
PPTX
日本語:Mongo dbに於けるシャーディングについて
ippei_suzuki
NoSQLデータベースと位置情報
Koji Ichiwaki
初めてのMongo db
Ryuji Tamagawa
ゼロから始めるBlob
Kazunori Hamamoto
RとSQLiteで気軽にデータベース作成
弘毅 露崎
HTML5 Local Storageを利用したメモ帳アプリ
Yossy Taka
Mongo dbを知ろう
CROOZ, inc.
Programming under capability mode
Yuichiro Naito
MongoDBざっくり解説
知教 本間
Db tech showcase2015 how to replicate between clusters
Hiroaki Kubota
RDB経験者に送るMongoDBの勘所(db tech showcase tokyo 2013)
Ryuji Tamagawa
ダイナミックDNSとは
Takeshi Kabu
ldapvi & python-ldap で stress-free life
Kouhei Maeda
Mongo db勉強会の補足
CROOZ, inc.
MongoDBが遅いときの切り分け方法
Tetsutaro Watanabe
Ajax非同期通信によるサーバー通信
Yossy Taka
R以外の研究ツール
弘毅 露崎
Mongo dbを半年ちょっと運用してみた
htty_hasumi
DB tech showcase: 噂のMongoDBその用途は?
Hiroaki Kubota
Next-L Enju 開発ワークショップ #8
Kosuke Tanabe
日本語:Mongo dbに於けるシャーディングについて
ippei_suzuki
Ad
Viewers also liked
(10)
PDF
【ポップインサイト】スタートアップのためのユーザテスト入門(ユーザ行動観察入門)
いけとも
PDF
Webマーケティング戦略セミナー
Yasuhiro Yoshizumi
PPTX
FARO REPORT Premium Sample
Miyu Mito
PPTX
Schoo講義資料 the startup0815訂正版
Yuhei Umeki
PPTX
スタートアップ論(@沖縄での起業家イベント:投影用資料)
Goushi Yamaguchi
PDF
「新規事業の立ち上げにおけるチームビルディングの前提」Service Design Night vol.3 〜 新規事業立ち上げ時のチームビルディ...
Tomohiro Suzuki
PDF
【Draft】サービス説明資料2017.03.01
Kohta Wada
PDF
新規事業を立ち上げる時のチームビルディングについて(Yenta)
Toshiyuki Oka
PPT
スタートアップのPR会議に参加して鍛える企画力【Cu-hacker編】 先生:秋貞 雄大
schoowebcampus
PDF
WEBマーケティングを事例で習得 - schooのユーザーを5倍にしよう! 先生:山田 案稜
schoowebcampus
【ポップインサイト】スタートアップのためのユーザテスト入門(ユーザ行動観察入門)
いけとも
Webマーケティング戦略セミナー
Yasuhiro Yoshizumi
FARO REPORT Premium Sample
Miyu Mito
Schoo講義資料 the startup0815訂正版
Yuhei Umeki
スタートアップ論(@沖縄での起業家イベント:投影用資料)
Goushi Yamaguchi
「新規事業の立ち上げにおけるチームビルディングの前提」Service Design Night vol.3 〜 新規事業立ち上げ時のチームビルディ...
Tomohiro Suzuki
【Draft】サービス説明資料2017.03.01
Kohta Wada
新規事業を立ち上げる時のチームビルディングについて(Yenta)
Toshiyuki Oka
スタートアップのPR会議に参加して鍛える企画力【Cu-hacker編】 先生:秋貞 雄大
schoowebcampus
WEBマーケティングを事例で習得 - schooのユーザーを5倍にしよう! 先生:山田 案稜
schoowebcampus
Ad
Similar to Mongo db勉強会
(20)
PPT
MongoDB
あしたのオープンソース研究所
PDF
Introduction to MongoDB
moai kids
PPTX
PHPとMongoDBで学ぶ次世代データストア
Takuya Sato
PDF
Mongodb 紹介
Ryo Matsumura
PPT
Mongodb
Satoru Mikami
PDF
MongoDBの使い方
Tatsuto Maetsu
PDF
はじめてのMongoDB
Keisuke Izumiya
PDF
MongoDB very basic (Japanese) / MongoDB基礎の基礎
Naruhiko Ogasawara
PDF
2019年度 若手技術者向け講座 NoSQL
keki3
PDF
MongoDB勉強会資料
Hiromune Shishido
PDF
mongodbの簡易ストレージ化
Hidetoshi Mori
DOC
20110301 Mongo Tokyo
Kenichi Masuda
DOC
20110302 Mongo Tokyo
Kenichi Masuda
PDF
後悔しないもんごもんごの使い方 〜アプリ編〜
Masakazu Matsushita
PPTX
初心者向けMongoDBのキホン!
Tetsutaro Watanabe
PDF
Javaでmongo db
Funato Takashi
PDF
MongoDB〜その性質と利用場面〜
Naruhiko Ogasawara
PDF
20120831 mongoid
Takeshi AKIMA
PDF
MongoDBとAjaxで作る解析フロントエンド&GraphDBを用いたソーシャルデータ解析
Takahiro Inoue
PDF
StepInNosql
abedaisuke1
MongoDB
あしたのオープンソース研究所
Introduction to MongoDB
moai kids
PHPとMongoDBで学ぶ次世代データストア
Takuya Sato
Mongodb 紹介
Ryo Matsumura
Mongodb
Satoru Mikami
MongoDBの使い方
Tatsuto Maetsu
はじめてのMongoDB
Keisuke Izumiya
MongoDB very basic (Japanese) / MongoDB基礎の基礎
Naruhiko Ogasawara
2019年度 若手技術者向け講座 NoSQL
keki3
MongoDB勉強会資料
Hiromune Shishido
mongodbの簡易ストレージ化
Hidetoshi Mori
20110301 Mongo Tokyo
Kenichi Masuda
20110302 Mongo Tokyo
Kenichi Masuda
後悔しないもんごもんごの使い方 〜アプリ編〜
Masakazu Matsushita
初心者向けMongoDBのキホン!
Tetsutaro Watanabe
Javaでmongo db
Funato Takashi
MongoDB〜その性質と利用場面〜
Naruhiko Ogasawara
20120831 mongoid
Takeshi AKIMA
MongoDBとAjaxで作る解析フロントエンド&GraphDBを用いたソーシャルデータ解析
Takahiro Inoue
StepInNosql
abedaisuke1
Mongo db勉強会
1.
MongoDB 勉強会
2.
MongoDB とは?
3.
ドキュメント指向型 データーベース
4.
RDB が関係を格納するのに対し、 ドキュメント指向は、
ドキュメントを格納します。
5.
何故ドキュメント指向を使うのか?
6.
背景としては、 RDB では、
一般的にスケールアウトが難しい。 今も DB は一台で他を 分散化しようという流れがありますよね? 何にでも RDB を使うのではなく、 用途に応じて、分散化しやすい KVS やデータストアを利用していこう。 NoSQL を使おうという流れがある。
7.
NoSQL は 既に活用されています
8.
例えば、
9.
Google の
BigTable
10.
Amazon の
Dynamo
11.
これらはプロプライエタリな データーベース
12.
では、オープンな ドキュメント指向は 何があるか?
13.
Cassandra Apache License
2.0 Java
14.
CouchDB( カウチ DB)
Apache License 2.0 Erlang
15.
MongoDB GNU AGPL
v3.0 C++
16.
他にも色々 - Chordless
- Db4o - GT.M - HBase - Hypertable - Memcachedb - Mnesia - Project Voldemort - Redis - SimpleDB
17.
前置きはこのくらいにして、
18.
操作をしよう。
19.
ユーザーを作成
20.
// 接続
$ mongo > // 予約語として管理 DB があります。 > use admin // 現在はユーザーがいません。 > db.system.users.find() // ユーザーを作成します。 > db.addUser('root','password') { "_id" : ObjectId("4ce0d5d806d4bbe3c620c5a4"), "user" : "root", "readOnly" : false, "pwd" : "d60e7db4538202339acd585fa951c5aa" } // ユーザーを確認 > db.system.users.find() { "_id" : ObjectId("4ce0d5d806d4bbe3c620c5a4"), "user" : "root", "readOnly" : false, "pwd" : "d60e7db4538202339acd585fa951c5aa" }
21.
管理ユーザーが作成できれば、 //
パスワード設定を行います。 $ vi /etc/mongo.conf noauth = false auth = true $ /etc/init.d/mongo restart 次に認証の操作。
22.
// 接続
$ mongo > > use admin // DB の一覧を求めます。 Error を返します。 > show dbs // 認証します。 > db.auth('root','password') 1 // DB の一覧が見れるようになりました > show dbs // データーを登録します。 // use で DB を指定(作成 ) > use test // コレクションを指定してデーターを登録することで、コレクション ( テーブル ) が出来ます。 > db.hoge.insert({hoge: 1}) > db.hoge.find() // コレクションの一覧確認 > show collections
23.
高度な検索をする際は、以下を参考ください。 http://www.mongodb.org/pages/viewpage.action?pageId=6029357 イコールだと、
> db.hoge.find({hoge : 1 }) 例えば ne > db.hoge.find({ hoge: { $ne : 1 } })
24.
簡単な操作は以上 次は社内フレームワーク Deco
25.
Deco で Mongo
を 実装しました。
26.
なんで MongoDB なの?
27.
理由
28.
PHP から接続できるライブラリが 簡単に利用できるのと、記述が簡単
29.
// ライブラリの
インストール は一行 $ pecl install mongo // 設定は php.ini に 一行 extension=mongo.so
30.
では、 Deco での初期設定、
操作をみていきます。
31.
接続 env.yml
db: dsn: "mongodb://[username]:[password]@localhost/[database]" database: [database] 設定は以上
32.
コードの書き方 // DB
のインスタンス作成 $hoge = $c->mongo('hoge'); // 結果の配列を受け取る $out = $hoge->findBy($id); var_dump($out);
33.
以上で、操作出来ます。 次に PHP
のライブラリを見ていきます。
34.
MongoDB の コアクラス
Mongo Class MongoDB Class MongoCollection Class MongoCursor Class コアクラスは4つある。 次はクラスの説明。
35.
- Mongo Class
MongoDB と PHP を接続 - MongoDB Class Mongo Class のインスタンスを利用した データベースとのやりとり $m = new Mongo(); // 接続 $db = $m->selectDB("example"); - MongoCollection Class MongoDB のインスタンスを利用した コレクションを操作するクラス - MongoCursor Class データベースクエリの結果を表すオブジェクト
36.
Deco での実装では
MongoCollection Class を オーバーライドし、 インスタンスの結果を返します。
37.
何が嬉しいか? MongoCollection の
メソッドを自由に変更できる。
38.
また、 plugin/mongo/[collection].php
を用意することで、 コレクション毎に、 MongoCommon を オーバーライドする実装としました。
39.
Deco Mongo パッケージ構成
plugin/mongo.php plugin/mongo/MongoCommon.php plugin/mongo/[collection].php + Deco.php に function 追加 // mongoDB function & mongo($table){ $db = $this->plugin('mongo', 1); return $db->getMongo($table); }
40.
クラスのイメージ plugin/mongo/MongoCommon.php class
MongoCommon extends MongoCollection { } plugin/mongo/[collection].php // location.php class P_mongo_location extends MongoCommon { }
41.
つまり、メソッドの MongoCommon
の find メソッドに対し、 P_mongo_location に find を実装することで、 処理の上書きができます。 plugin/mongo/MongoCommon.php class MongoCommon extends MongoCollection { function find($query = array()){ return parent::find($query); } } plugin/mongo/[collection].php class P_mongo_location extends MongoCommon { function find($query = array()){ // ← が優先となる。 return 'hoge'; } }
42.
実装は以上です。 あとは、 Deco
での操作を見ながら 確認していきます。
Download