#pragma section-numbers off
[[TableOfContents]]

= 概要 =
MongoDB 2.0.x に関してメモしています。

= 公式サイト =

= 関連サイト =

= インストール =

= 設定 =

= チュートリアル =
 * [http://www.mongodb.org/pages/viewpage.action?pageId=5079135 チュートリアル - Docs-Japanese - 10gen Confluence]
 * [http://d.hatena.ne.jp/babie/20100805/1280982678 ハンズオンで分かる MongoDB チュートリアル - LazyLoadLife]

= UI =
 * Windows : [http://www.mongovue.com/ MongoVUE | Gui tools for MongoDB]
 * 

= ポート =
MongoDBのサーバがport指定しない場合にバインドするポートは以下
 * Standalone mongod : 27017
 * mongos : 27017
 * shard server (mongod --shardsvr) : 27018
 * config server (mongod --configsvr) : 27019
 * web stats page for mongod : add 1000 to port number (28017, by default)

= ユーザの作成 =
[http://www.mongodb.org/display/DOCS/Security+and+Authentication Security and Authentication - MongoDB]

{{{
# 管理テーブルに接続
use admin
# ユーザ確認
db.system.users.find()
# ユーザ作成
db.addUser('root', 'password')
}}}

{{{
# パスワードを更新する場合も新規作成と同じ
db.addUser('root', 'password')
}}}

{{{
# 作成ユーザの削除
db.removeUser( username )
}}}

各サーバにパスワードを求めるようにします。起動オプションの場合は keyFile オプションを付与します。
{{{
--keyFile /path/to/keyFile
}}}

keyFile は以下のように作成します。パーミッションは 600 とかにしておかないとだめ。
{{{
echo -e "key Strings" > /path/to/keyFile
}}}

文字列は 6文字以上でスペースを含めて 1KB 以下にします。通常 Base64 した文字を入れます。利用される場合は空白は無視されます。

起動オプションに{{{-v}}} を付与すると利用のログがでます。

Replica Set や Shardig をしている場合は、全サーバに同じキーファイルを設定しないとログインできません。

また addUser してない データベースには直接ログインできなくなります。ログインした後に use は可能。

{{{
# 接続
mongo admin -u root -p password
}}}

= ジャーナリング =
2.0.x ではデフォルトでジャナリングが ON になっている。その分ディスク容量を消費するので注意。

= 起動 =
 * [http://www.thattommyhall.com/2011/05/13/running-repair-on-mongodb-via-upstart/ thattommyhall.com » Running –repair on MongoDB via Upstart]
 * [https://gist.github.com/388556 MongoDB Upstart file (/etc/init/mongodb.conf) — Gist]
 * [http://sa3g.blogspot.com/2011/05/mongodb-shardupstart.html Mongodb ShardのためにUpstart起動スクリプト | Sawanoblog 3G]

= バックアップ =
 * [https://github.com/micahwedemeyer/automongobackup micahwedemeyer/automongobackup · GitHub]

= 大量データ =
 * [http://symfoware.blog68.fc2.com/blog-entry-303.html MongoDBに一括でデータを登録する(Bulk Inserts) - Symfoware]

= ライブラリ =
 * [http://api.mongodb.org/python/current/ PyMongo 2.1.1 Documentation — PyMongo v2.1.1 documentation]
 * [https://github.com/algernon/mojology algernon/mojology · GitHub]:mongodb にためた syslog を見る
 * [http://mongoengine.org/ MongoEngine]
 * [https://github.com/namlook/mongokit namlook/mongokit · GitHub]
 * [http://merciless.sourceforge.net/ Welcome to Ming’s documentation! — Ming 0.2 documentation]
 * [http://www.mongoalchemy.org/ Welcome to MongoAlchemy’s documentation! — MongoAlchemy v0.8 documentation]
 * [https://github.com/fiorix/mongo-async-python-driver fiorix/mongo-async-python-driver · GitHub]

= Replica Set =
 * [http://www.mongodb.org/display/DOCS/Replica+Set+Tutorial Replica Set Tutorial - MongoDB]
 * [http://d.hatena.ne.jp/matsukaz/20110417/1303057728 ローカル環境だけでReplica SetとSharding構成を構築 - matsukazの日記]

= Sharding =
 * [http://d.hatena.ne.jp/doryokujin/20110601/1306858487 Sharding を使いこなすための5つのTips - @doryokujin ブログ:勉強会はうちに帰っても勉強会]
 * [http://d.hatena.ne.jp/matsuou1/20110413/1302710901 MongoDBのShardingを試してみた。その1 - matsuou1の日記]
 * [http://d.hatena.ne.jp/matsuou1/20110419/1303231639 MongoDBのShardingを試してみた。その3 障害発生時の挙動について - matsuou1の日記]
 * [http://ringio-blog.appspot.com/2011/01/in-the-sharding-mongodb リンギオ - MongoDB で Sharding する]
 * [http://www.sawanoboly.net/wp/2011/04/29/279.html 素で運用中のMongodbをShardにするステップ | SawanoBlog 2G]
 * [http://hachi.hatenablog.com/entry/2012/02/26/191349 MongoDBのSharding機能で遊ぶ - hachiのブログ]

= 設定方法 =
 * [http://d.hatena.ne.jp/CrimsonPig/20110913/p1 Linux(CentOS)にMongoDB2.0.0を構築 ReplicaSets+Sharding - 飛ばない豚は、ただの豚だ。]
 * [http://ameblo.jp/principia-ca/entry-10812540202.html ドキュメント指向データベース「MongoDB」|サイバーエージェント 公式エンジニアブログ]

= 利用方法 =
 * [http://www.ryuzee.com/contents/blog/3268 MongoDBを試してみた | Ryuzee.com]
 * [http://eliothorowitz.com/post/459890033/streaming-twitter-into-mongodb Eliot's Ramblings / Streaming Twitter into MongoDB]
 * [http://d.hatena.ne.jp/nokuno/20110515/1305418697 MongoDBのMapReduce機能を使ってみた - nokunoの日記]
 * [http://dayafterneet.blogspot.com/2011/11/fluent-mongodb-nodejs-web.html fluent + mongodb + node.js でwebアクセスの準リアルタイム解析 | Day After Neet]
 * [http://www.slideshare.net/naverjapan/mongodb-9422893 事例:とある写真共有アプリでのMongoDB]

= 利用例 =

== ログ解析 ==
 * [http://www.slideshare.net/doryokujin/mongodb-uimongodb MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜]

== Twitter 解析 ==
 * [http://firn.jp/2010/10/31/streaming-api-to-mongodb Twitter Streaming APIをMongoDBに保存して遊んでみる | FIRN.JP]
 * [http://d.hatena.ne.jp/nokuno/20110118/1295304471 Twitter StreamingのデータをMongoDBに突っ込む - nokunoの日記]
 * [https://github.com/penguinco/yats-socialgraph-dump penguinco/yats-socialgraph-dump - GitHub]
 * [http://cloudrop.jp/mongodb/mongodb_on_sakura_vps さくらのVPS+MongoDBでTwitterクライアントランキングを作ってみた | cloudrop]

= 参考サイト =
 * [http://www.slideshare.net/doryokujin/mongodb-intro-application-for-big-data MongoDB]
 * [http://cloudrop.jp/mongodb/3rd_digest 第3回 MongoDB勉強会 ダイジェスト | cloudrop]

----
CategoryDatabase